作业帮 > 综合 > 作业

C语言螺旋方阵1 2 3 4 5 16 17 18 19 615 24 25 20 714 23 22 21 813 1

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 07:55:51
C语言螺旋方阵
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
这种形式的螺旋方阵,下面的代码哪里写的有问题
#include
#define MAXN 10
int a[MAXN][MAXN];
void main()
{
\x09int i,j,k,m,n;
\x09printf("请输入整数n:");
\x09scanf("%d",&n);
\x09m=0;k=1;
\x09while(k
for(i=k-1;;)
for(j=n-k;;)
for(i=n-k;;)
for(j=k-1;;)
你的这种循环里面没有对条件做判断,变量取值也一直不变,压根就是死循环
这是我百度的,经过测试了你看下
#include
void main()
{
int i = 0;
int j = 0;
int k = 0;
int data[20][20]={0};
int count = 0;
int N = 0;
printf("Input an integer N:\n");
scanf("%d",&N);
for(k = 0;k < N/2;k ++)
{
for(i = k;i < N-k;i++)
data[k][i] = ++count;
for(i = k+1;i < N -k;i++)
data[i][N-k-1] = ++count;
for(i = N-k-2;i > k; i--)
data[N-k-1][i] = ++count;
for(i = N-k-1;i > k;i --)
data[i][k] = ++count;
}
if(N % 2 != 0)
data[N/2][N/2] = N*N;
for(i = 0;i < N;i ++)
{
for(j = 0;j < N;j ++)
printf("%d\t",data[i][j]);
printf("\n");
}
}
再问: 我是想表达初始条件是这些,那应该怎么改呢?
再答: #include #define MAXN 10 int a[MAXN][MAXN]; void main() { int i,j,k,m,n; printf("请输入整数n:"); scanf("%d",&n); m=0;k=0; //k while(k k; i--) a[n-k-1][i] = ++m; for(i = n-k-1;i > k;i --) a[i][k] = ++m; k++; } if(n% 2 != 0) a[n/2][n/2] = n*n; for(i=0;i