c语言输出数字,这些数字排列为n行*n排,数字为1至n*n,对角线及上下区间显示数字,左右区间隐藏数字,数字2位右对齐,数字间隔2个空格,每行最后一个数字后换行。
时间: 2024-09-20 12:06:04 浏览: 33
基于C实现的N阶数字正方形 ;N阶数字三角形;N阶数字递减三角形;乘法表
在C语言中,你可以通过嵌套循环和格式化控制来实现这种矩阵的输出。下面是一个简单的示例代码,它满足你的所有要求:
```c
#include <stdio.h>
#define N 5 // 可以改变这个值以调整矩阵大小
void print_matrix(int n) {
for (int i = 0; i <= n; i++) { // 上下区间的循环
for (int j = max(0, i - n + 1); j <= min(i, n - 1); j++) { // 左右区间的条件判断
if (i == j || i + j == n * n) { // 对角线和中心数字
printf("%*d", 4, (i + j) * 10 + 1); // 2位右对齐并设置前导空格
} else {
// 隐藏其他数字
printf(" "); // 两个空格
}
}
if (i < n) { // 每行最后一个数字后换行
printf("\n");
}
}
}
int main() {
int n = 5;
print_matrix(n);
return 0;
}
```
在这个代码中,`print_matrix`函数打印了一个`n x n`的矩阵。我们使用了内层循环的条件限制来隐藏左右区间的内容,只有对角线和指定的中心位置会显示数字。每个数字都使用`%*d`的格式化字符串,其中`*`表示宽度,`d`表示十进制整数。
阅读全文