如何在C语言中创建一个矩阵,其正对角线上的元素都设置为1,而其他元素则是对应下标减一的值?
时间: 2024-10-23 22:21:08 浏览: 6
cpp代码-大作业第二题: 输入一个5行5列的二维数组,编程实现: (1) 求出其中的最大值和最小值及其对应的行列位置; (2) 求出上三角上各元素之和(上三角的元素a[i][j] ,i+j<5)。
在C语言中,你可以使用二维数组来创建这样的矩阵。首先,确定矩阵的行数和列数,然后初始化数组。对于正对角线上的元素(即索引i和j相等),赋值为1;对于其他位置(i != j),赋值为i-j。这是一个简单的示例:
```c
#include <stdio.h>
#define ROWS 5 // 矩阵行数
#define COLS 5 // 矩阵列数
void createMatrix(int matrix[ROWS][COLS]) {
int i, j;
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
if (i == j) { // 对角线上
matrix[i][j] = 1;
} else {
matrix[i][j] = i - j; // 其他位置
}
}
}
}
int main() {
int matrix[ROWS][COLS];
createMatrix(matrix);
// 打印矩阵
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
运行此程序,它将创建并打印出一个满足条件的矩阵。
阅读全文