一则C++程序设计课堂练习的记录
来源:互联网 发布:关键词优化排名 编辑:程序博客网 时间:2024/06/05 17:41
执行效果如图:
本是一次课堂练习,限时30分钟。
课上苦思冥想无果,回到宿舍花了三个小时勉强实现了功能,代码还需改进。
#include <iostream>
using namespace std;
int main()
{
int x = 1 , y = 1 , k , i = 0 , n ;
cout << "Please input a number:" ;
cin >> n ;
int array[n][n];
for(x=1;x<=n;x++)
{
for(y=1;y<=n;y++)
array[x][y] = -1 ;
}
for( x = 1 , y = 1 , k = 1 ; k <= 4*(n-1) ; k++ )
{
i = i+1 ;
if( i >= 10)
i = i-10 ;
array[x][y] = i;
// cout << "array[" << x << "][" << y << "]=" << array[x][y] << "\n";
if( x == 1 && y != n )
y++;
else if( y == n && x != n )
x++;
else if( x == n && y == n )
y--;
else if( x == n && y != 1 )
y--;
else if( x != 2 && y == 1)
x--;
}
for( x = 2 , y = 2 , k = 1 ; k <= (n-2)*(n-2) ; k++ )
{
i = i+1 ;
if( i >= 10)
i = i-10 ;
array[x][y] = i;
// cout << "array[" << x << "][" << y << "]=" << array[x][y] << "\n";
if( array[x-1][y]!=-1 && array[x+1][y]==-1 && array[x][y-1]!=-1 && array[x][y+1]==-1)
y++;
else if( array[x-1][y]!=-1 && array[x+1][y]==-1 && array[x][y-1]!=-1 && array[x][y+1]!=-1)
x++;
else if( array[x-1][y]!=-1 && array[x+1][y]==-1 && array[x][y-1]==-1 && array[x][y+1]!=-1)
x++;
else if( array[x-1][y]!=-1 && array[x+1][y]!=-1 && array[x][y-1]==-1 && array[x][y+1]!=-1)
y--;
else if( array[x-1][y]==-1 && array[x+1][y]!=-1 && array[x][y-1]==-1 && array[x][y+1]!=-1)
y--;
else if( array[x-1][y]==-1 && array[x+1][y]!=-1 && array[x][y-1]!=-1 && array[x][y+1]!=-1)
x--;
else if( array[x-1][y]==-1 && array[x+1][y]!=-1 && array[x][y-1]!=-1 && array[x][y+1]==-1)
x--;
else if( array[x-1][y]!=-1 && array[x+1][y]!=-1 && array[x][y-1]!=-1 && array[x][y+1]==-1)
y++;
else if( array[x-1][y]==-1 && array[x+1][y]==-1 && array[x][y-1]==-1 && array[x][y+1]==-1)
break;
}
for(x = 1 ; x <= n ; x++)
{
for(y = 1 ; y <= n ; y++)
cout << array[x][y] << "\t";
cout << "\n" <<endl;
}
system("pause");
return 0;
}
初学C++,感觉功能实现的代码比较冗余。
单行注释锝两行代码是因为
else if( array[x-1][y]!=-1 && array[x+1][y]==-1 && array[x][y-1]!=-1 && array[x][y+1]!=-1)
x++;
这部分代码出错了,运行不正确。
特输出结果检错,果然这样的代码又长又容易错啊。
- 一则C++程序设计课堂练习的记录
- c语言课堂练习笔记
- C++(笔记)课堂基础练习
- 课堂练习
- 课堂练习
- 网易云课堂程序设计入门--C语言第一周 简单的计算程序学习笔记
- 网易云课堂-程序设计入门-C语言-第一周:简单的计算程序
- (深夜课堂)Javascript 面向对象的程序设计
- 课堂在线Java程序设计 类的继承
- 课堂在线Java程序设计 类的继承
- C程序设计WEEK7晚上练习
- C程序设计Week8 练习题目
- C程序设计Week9 练习题目
- C程序设计Week12晚上练习
- C语言 Windowst程序设计 工具栏的使用练习
- 类的定义 课堂练习1:
- 类的定义之课堂练习1
- 对象的组合 课堂练习4
- POJ 2965The Pilots Brothers' refrigerator (bfs)
- 分布式数据库【2、两阶段提交协议2PC】【部分转载】
- 老师,这绝对是我一行一行敲出来的
- gcc与g++的区别
- hdu3091之状态压缩dp
- 一则C++程序设计课堂练习的记录
- SpringMvc(三)配置Mybatis
- 如何求FIRST集和FOLLOW集
- Socket编程原理
- eclipse
- UVA 11400 Lighting System Design(贪心+DP)
- ArcGIS 10.1 for Server 在windows下的安装
- 课题实验(一)
- POJ 3034 (dp) 锤子尼玛能在棋盘外面。。出题不带这么坑的