C语言,生成n行n列矩阵,输入最中间的元素为m,使第一行第一列,,以及最后一行最后一列都为1,第二行第二列,倒数第二行倒数第二列都为2,以此类推
时间: 2024-10-26 20:03:38 浏览: 9
在C语言中,你可以使用二维数组(array of arrays)来创建这样的矩阵,并通过循环结构来填充相应的值。这里是一个简单的示例代码:
```c
#include <stdio.h>
#define N 5 // 矩阵大小,可以根据需要修改
void print_matrix(int m, int n) {
int matrix[N][N]; // 定义一个N x N的二维数组
int i, j;
// 设置边界值
for (i = 0; i < N; i++) {
matrix[0][i] = matrix[i][0] = 1;
if (i == N - 1)
matrix[i][i] = m;
}
// 填充剩余元素
for (i = 1; i < N - 1; i++) {
for (j = 1; j < N - 1; j++)
matrix[i][j] = i + j; // 这里假设你想让对角线之外的元素等于其行和列之和
}
// 打印矩阵
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf("%d ", matrix[i][j]);
printf("\n");
}
}
int main() {
int m = 5; // 输入最中间的元素
print_matrix(m, N);
return 0;
}
```
在这个代码中,我们首先设置边界值(第一行、第一列及对角线),然后填充剩余的元素,使其满足题目描述的要求。最后,我们遍历并打印整个矩阵。
如果你想要改变对角线之外元素的行为,只需修改`matrix[i][j] = i + j;`这一行即可。
阅读全文