```c
include
int main() {
int n, i, j, m;
scanf("%d", &n);
m = 1;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++, m++) {
printf(" %2d", m);
}
printf("\n");
}
return 0;
}
```
代码解释:
输入部分
`int n, i, j, m;`:声明变量,`n` 是正方形的边长,`i` 和 `j` 是循环变量,`m` 是用于打印数字的计数器。
`scanf("%d", &n);`:从标准输入读取一个整数 `n`,表示正方形的边长。
输出部分
外层循环 `for (i = 1; i <= n; i++)` 控制行数。
内层循环 `for (j = 1; j <= n; j++, m++)` 控制每行的打印内容,`m` 每次循环增加1,表示当前打印的数字。
`printf(" %2d", m);` 打印数字,数字占2个字符宽度,不足部分用空格填充。
`printf("\n");` 每行打印完毕后换行。
示例输出:
当输入 `n = 4` 时,输出如下:
```
1 2 3 4
16 17 18 19
15 24 25 20
14 23 22 21
```
这个程序可以生成一个由1到n的数字组成的正方形,并且每个数字占2个字符宽度,不足部分用空格填充。你可以根据需要修改输入和输出格式。