您的位置:首页 > 编程语言 > C语言/C++

c语言:使一个N*N二维数组输出呈顺时针螺旋递增

2014-04-27 15:55 681 查看
#include<stdio.h>
int main( ){
int i, j, a[100][100]={0}, n, k = 1;
printf("please input a number n:");
while(scanf("%d", &n)!=EOF){
k = 1;
for (i = 1; i <= n / 2; ++ i){
for (j = i; j <= n - i; ++ j) /* 左侧 */
a[i][j] = k ++;
for (j = i; j <= n - i; ++ j) /* 下方 */
a[j][n + 1 - i] = k ++;
for (j = n - i + 1; j >= i + 1; j = j - 1) /* 右侧 */
a[n + 1 - i][j] = k ++;
for (j = n - i + 1; j >= i + 1; j = j - 1) /* 上方 */
a[j][i] = k ++;
}
if(n != 1){
for (i = 1; i <= n; ++ i){
for (j = 1; j <= n; ++ j)
printf("%5d", a[i][j]); printf("\n");
}
}
else
printf("%5d\n",n);
printf("please input a number n:");
}
return 0;
}

执行效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言
相关文章推荐