c语言问题高手进!

#include<stdio.h>
#define maxn 10
int a[maxn][maxn];
void main()
{
int n,number=1,t,m,x=0,y=0,r=0;
printf("请输入一个数n作为行列数\n");
scanf("%d",&n);
m=n;
t=n*n;
while(t>number)
{
for(;x<n;x++)
a[x][y]=number++;
for(y=y+1;y<n;y++)
a[x-1][y]=number++;
for(x=x-1;x>=r;x--)
a[x][y-1]=number++;
for(y=y-1;y>r;y--)
a[x][y-1]=number++;
n--;
r++;
printf("greeat!\n");
}
for(x=0;x<m;x++)
{
for(y=0;y<m;y++)
printf("%d ",a[x][y]);
printf("\n");
}
}
就是编写

1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7

第1个回答  2011-06-19
很好!!!
第2个回答  2011-06-19
螺旋方阵吗?追问

是吧.

追答

我以前写过,要不给你看我的!

追问

好的

追答

C++写的
/************************************************************************/
/* 算法: 海龟法实现螺旋方阵(顺时针) */
/************************************************************************/

#include
#include
#include
using namespace std;

int main(void)
{
int line=0, col=0;//行数,列数
//海归头转动方向---右,下,左,上(根据数组特点拟定)
int direction[4][2]={{0,1},{1,0},{0,-1},{-1,0}};

while(1)
{
int i=0, j=0, k=1;
int turn=0;//控制转动方向的变量,取值0-3
cout>line>>col;
if ( line > spiral(line,vector(col));

for ( i=0; i=line || j>=col || spiral[i][j]!=0)
{//spiral[i][j]!=0 条件要放在最后面,避免数组越界
//探寻到边界就退一步,并且改变海龟头的方向
i-=direction[turn][0];
j-=direction[turn][1];
++turn;
//使海龟头转动方向限定在方向数组direction[4][2]中
if (turn>=4)
{
turn=0;
}
//探寻到边界后重新选定的位置
i+=direction[turn][0];
j+=direction[turn][1];
}
++k;//给螺旋方阵元素赋不同值兼控制变量
}

for ( i=0; i<line; i++ )
{//输出螺旋方阵
for ( j=0; j<col; j++ )
{
cout<<setw(4)<<spiral[i][j];
}
cout<<endl;
}
}
return 0;
}
// [5/27/2011 Administrator]

追问

c的有吗??不要c加加的

追答

额。。。那我把它改成C的吧,得点时间额!

OK了

/************************************************************************/
/* 算法: 海龟法实现螺旋方阵(顺时针) ---C版 */
/************************************************************************/

#include
#include

void main(void)
{
int line=0, col=0;//行数,列数
//海归头转动方向---右,下,左,上(根据数组特点拟定)
int direction[4][2]={{0,1},{1,0},{0,-1},{-1,0}};

while(1)
{
int i=0, j=0, k=1;
int turn=0;//控制转动方向的变量,取值0-3
printf("input line and col:");
scanf("%d%d",&line,&col);
if ( line =line || j>=col || spiral[i][j]!=0)
{//spiral[i][j]!=0 条件要放在最后面,避免数组越界
//探寻到边界就退一步,并且改变海龟头的方向
i-=direction[turn][0];
j-=direction[turn][1];
++turn;
//使海龟头转动方向限定在方向数组direction[4][2]中
if (turn>=4)
{
turn=0;
}
//探寻到边界后重新选定的位置
i+=direction[turn][0];
j+=direction[turn][1];
}
++k;//给螺旋方阵元素赋不同值兼控制变量
}

for ( i=0; i<line; i++ )
{//输出螺旋方阵
for ( j=0; j<col; j++ )
{
printf("%4d",spiral[i][j]);
}
printf("\n");
}
//释放内存
for ( i=0; i<line; i++ )
{
delete [] spiral[i];
}

}
}// [6/19/2011 Administrator]

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网