输入正整数N(N≤20),输出数值围成的中间镂空的矩形,数组中的最大值不超过100,因此按照%3d格式输出每个元素的值即可。没有数值的位置需要留出3个空格,确保输出结果整齐
时间: 2024-03-24 12:38:41 浏览: 8
好的,以下是实现这个问题的代码:
```
#include <stdio.h>
int main() {
int N;
scanf("%d", &N);
int matrix[20][20];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &matrix[i][j]);
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i == 0 || i == N - 1 || j == 0 || j == N - 1 || (i >= N / 2 && j >= N / 2) || (i <= N / 2 && j <= N / 2)) {
printf("%3d", matrix[i][j]);
} else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
```
该代码与之前的代码类似,通过输入一个正整数N和一个N*N的矩阵,输出数值围成的中间镂空的矩形,并使用%3d格式输出每个元素的值,确保输出结果整齐。在中间的空缺部分,留出3个空格。这里的判断条件是,当i和j在矩形的边界上,或者在矩形的中心区域时,输出对应的数值,否则输出3个空格。
希望这个回答能够帮到你。