能不能利用C语言多维数组帮我做出如如图的效果呀?假设有一个奇数N(3、5、7、9)程序需要将1~N*N的数值,按如下格式输出:1、1填在第一行的中间.2、下一个数永远填在右上角的格子,如果越
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/07 20:30:47
能不能利用C语言多维数组帮我做出如如图的效果呀?假设有一个奇数N(3、5、7、9)程序需要将1~N*N的数值,按如下格式输出:1、1填在第一行的中间.2、下一个数永远填在右上角的格子,如果越
能不能利用C语言多维数组帮我做出如如图的效果呀?
假设有一个奇数N(3、5、7、9)程序需要将1~N*N的数值,按如下格式输出:
1、1填在第一行的中间.
2、下一个数永远填在右上角的格子,如果越界,就转头.
3、如果遇到n的倍数,下一个数直接填在下方的格子内.
图中例子的奇数N是5
能不能利用C语言多维数组帮我做出如如图的效果呀?假设有一个奇数N(3、5、7、9)程序需要将1~N*N的数值,按如下格式输出:1、1填在第一行的中间.2、下一个数永远填在右上角的格子,如果越
#include <stdio.h>
int main()
{
int n, a[100][100];
int i, j, x, y;
scanf("%d", &n);
x = 1;
y = (n + 1) / 2;
for (i = 1; i <= n * n; i ++)
{
a[x][y] = i;
if (i % n == 0)
x ++;
else
{
x --;
y ++;
}
if (x == 0)
x = n;
if (x == n + 1)
x = 1;
if (y == n + 1)
y = 1;
}
for (i = 1; i <= n; i ++)
{
for (j = 1; j <= n; j ++)
printf("%d ", a[i][j]);
printf("\n");
}
getch();
return 0;
}