Code Bye

打印5*5螺旋方阵问题

编程如下,运行结果就是不对,请高手们过过目,帮本人看看哪里错了,跪谢!
void main()
{
int a[10][10],i,j,m,n,k=0;
printf(“enter n\n”);
scanf(“%d”,&n);
if (n%2==0) m=n/2;
else m=(n+1)/2;
for(i=0;i<m;i++)
for(j=i;j<n-i;j++) a[i][j]=++k;
for(j=i+1;j<n-i-1;j++) a[j][n-i-1]=++k;
for(j=n-i-2;j>=i;j–) a[n-i-1][j]=++k;
for(j=n-i-2;j>=i+1;j–) a[j][i]=++k;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf(“%d  “,a[i][j]);
printf(“\n”);}
}
解决方案

20

参考
#include <stdio.h>
int main(int argc, char* argv[])
{
	int a, b, c, d, i, n, num = 1, array[20][20];
	scanf("%d", &n);
	/* a, b, c, d分别为上、下、左、右边界,a、b为行号,c、d为列号 */
	for (a = 0, b = n - 1, c = 0, d = n - 1; a <= b; a ++, b --, c ++, d --) {
		for (i = c; i <= d; i ++) array[a][i] = num ++;
		for (i = a + 1; i < b; i ++) array[i][d] = num ++;
		for (i = d; i > c; i --) array[b][i] = num ++;
		for (i = b; i > a; i --) array[i][c] = num ++;
	}
	for (i = 0; i < n; i ++) {
		for (a = 0; a < n; a ++) printf("%5d", array[i][a]);
		printf("\n");
	}
	return 0;
}

10

 for(i=0;i<m;i++)
        for(j=i;j<n-i;j++) a[i][j]=++k;
        for(j=i+1;j<n-i-1;j++) a[j][n-i-1]=++k;
        for(j=n-i-2;j>=i;j--) a[n-i-1][j]=++k;
        for(j=n-i-2;j>=i+1;j--) a[j][i]=++k;

这是题主的代码。本人个人建议for循环和if判断之后加{},不知道这里是复制过来的时候出现了问题还是你原来代码就是这样,计算机识别的时候你不加{},他认为你 for(i=0;i<m;i++)中只有   for(j=i;j<n-i;j++) a[i][j]=++k;

[code=c] for(i=0;i<m;i++)
        for(j=i;j<n-i;j++) a[i][j]=++k;

      for(j=i+1;j<n-i-1;j++) a[j][n-i-1]=++k;
        for(j=n-i-2;j>=i;j--) a[n-i-1][j]=++k;
        for(j=n-i-2;j>=i+1;j--) a[j][i]=++k;

是两部分

20

void main()
{
int a[10][10],i,j,m,n,k=0;
printf("enter n\n");
scanf("%d",&n);
    if (n%2==0) m=n/2;
    else m=(n+1)/2;
    for(i=0;i<m;i++)
	{											//少个大括号
        for(j=i;j<n-i;j++) a[i][j]=++k;
        for(j=i+1;j<=n-i-1;j++) a[j][n-i-1]=++k;//j<=n-i-1少个等号
        for(j=n-i-2;j>=i;j--) a[n-i-1][j]=++k;
        for(j=n-i-2;j>=i+1;j--) a[j][i]=++k;
	}
  for(i=0;i<n;i++)
  {
	  for(j=0;j<n;j++)
		  printf("%d\t",a[i][j]);
    printf("\n");
  }
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明打印5*5螺旋方阵问题