输出一个和螺旋数组如下:
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
这是我的源码:
#include<stdio.h>
void main(){
int a[100][100]={0};
int n,i,j,k = 0;
scanf("%d",&n);
for(i = 1;i<=n/2;i++){
for(j = i;j<=n-i;j++)
a[j][i] = k++;
for(j = i;j<=n-i;j++)
a[n-i+1][j] = k++;
for(j = n-i+1;j>=i+1;j--)
a[j][n-i+1]=k++;
for(j = n+i-1;j>=i+1;j--)
a[i][j] = k++;
}
for(i=1;i<=n;i++){
for(j = 1 ;j<=n;j++ )
printf("%d ",a[i][j]);
printf("\n");
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
#include<stdio.h>
void main(){
int a[100][100]={0};
int n,i,j,k = 0;
scanf("%d",&n);
for(i = 1;i<=n/2;i++){
for(j = i;j<=n-i;j++)
a[j][i] = k++;
for(j = i;j<=n-i;j++)
a[n-i+1][j] = k++;
for(j = n-i+1;j>=i+1;j--)
a[j][n-i+1]=k++;
for(j = n-i+1;j>=i+1;j--)//修改为 j=n-i+1
a[i][j] = k++;
}
for(i=1;i<=n;i++){
for(j = 1 ;j<=n;j++ )
printf("%2d ",a[i][j]); //修改为 %2d
printf("\n");
}
}