三只耳朵
春芽
共回答了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