C语言,输入一个(1~20)的数n!得到n*n个数,以n*n矩阵顺时针输出!

极地跑者 1年前 已收到1个回答 举报

三只耳朵 春芽

共回答了13个问题采纳率:92.3% 举报

方法很多,以下是按照各边的次序填充再输出:
#include
int main( )
{
int i,j,a[100][100],n,k = 1;
printf("please input a number n:");
scanf("%d",&n);
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 % 2 == 1)
for (i = 1; i <= n; ++ i)
{
for (j = 1; j <= n; ++ j)
printf("%4d",a[i][j]);
printf("n");
}
}
另外,虚机团上产品团购,超级便宜

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.024 s. - webmaster@yulucn.com