C语言输出n行n列的对称矩阵
时间: 2024-12-15 08:14:15 浏览: 6
在C语言中,输出n行n列的对称矩阵通常可以采用循环结构和嵌套循环来实现。这里是一个简单的示例,假设n为奇数:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入矩阵的行数(必须是奇数): ");
scanf("%d", &n);
if (n % 2 == 0) { // 检查n是否为偶数,如果是则不能生成对称矩阵
printf("错误:矩阵行数必须是奇数。\n");
return 0;
}
for (int i = 0; i <= n / 2; ++i) {
for (int j = 0; j <= i; ++j) {
printf("%d ", i + 1); // 对角线元素从1开始递增
}
for (int k = i + 1; k < n - i; ++k) {
printf("* ");
}
for (int l = i; l >= 0; --l) {
printf("%d ", i + 1); // 下对角线元素从上到下递减
}
printf("\n"); // 每行结束换行
}
return 0;
}
```
在这个程序中,外层循环控制行数,内层第一个循环打印对角线的数字,中间的空格区域打印星号(*),最后一个内层循环打印下对角线的数字。由于是对称矩阵,下半部分的数值会按照对称的方式排列。
阅读全文