一则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++;

这部分代码出错了,运行不正确。

特输出结果检错,果然这样的代码又长又容易错啊。

0 0
原创粉丝点击