关于c语言问题3
来源:百度知道 编辑:UC知道 时间:2024/06/16 11:51:25
写一个程序,打印从1到n的平方数,要求打印格式如下,例如当你打5时,则显示
13 13 15 16 01
12 23 24 17 02
11 22 25 18 03
10 21 20 19 04
09 08 07 06 05
13 13 15 16 01
12 23 24 17 02
11 22 25 18 03
10 21 20 19 04
09 08 07 06 05
编这一个程序用一个二维数组,通过输入的n值控制所用到数组的长度,由外向内一圈一圈地赋值:(程序虽然用了100*100的组数,但一行打印的长度有限,验证时n小于15时比较直观)
程序如下:
main()
{int a[100][100];
int x,y,i,j,k,n,num;
printf("please input n value : ");
scanf("%d",&n);
num=1;
x=0;
y=n-1;
k=n-1;
for(i=0;i<n/2;i++)
{
for(j=0;j<k;j++)
{a[x][y]=num;
num++;
x++;
}
for(j=0;j<k;j++)
{a[x][y]=num;
num++;
y--;
}
for(j=0;j<k;j++)
{a[x][y]=num;
num++;
x--;
}
for(j=0;j<k;j++)
{a[x][y]=num;
num++;
y++;
}
x=x+1;
y=y-1;
k=k-2;
}
if(n%2)a[x][y]=n*n;
printf("\n\n\nthe result:\n\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\