用C语言编写有一个4×4的矩阵,找出主对角线上元素的最大值及所在的行号。
时间: 2024-11-25 10:31:30 浏览: 15
实验10资料-20181
在C语言中,你可以通过创建一个二维数组来表示4x4的矩阵,并遍历这个矩阵来寻找主对角线上的最大值及其行号。以下是基本的步骤:
```c
#include <stdio.h>
#define ROWS 4
#define COLS 4
// 定义矩阵结构
typedef struct {
int value;
int row;
} Matrix;
// 函数声明
Matrix find_max_diagonal_value(int matrix[ROWS][COLS]);
int main() {
// 初始化一个4x4矩阵示例
int matrix[ROWS][COLS] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
// 调用函数并打印结果
Matrix max_diag = find_max_diagonal_value(matrix);
printf("最大主对角线值: %d, 行号: %d\n", max_diag.value, max_diag.row);
return 0;
}
// 实现查找主对角线最大值的函数
Matrix find_max_diagonal_value(int matrix[ROWS][COLS]) {
Matrix max_val = {matrix[0][0], 0}; // 初始最大值,行号设为0
for (int i = 0; i < ROWS && i < COLS; i++) {
if (i == max_val.row) { // 当前元素在主对角线上
if (matrix[i][i] > max_val.value) {
max_val.value = matrix[i][i];
max_val.row = i; // 更新最大值和对应的行号
}
}
}
return max_val;
}
```
在这个程序中,`find_max_diagonal_value`函数会遍历矩阵的每个元素,如果当前元素在主对角线上并且比当前已知的最大值还要大,就更新最大值和行号。最后,`main`函数打印出找到的最大主对角线值和其所在的行号。
阅读全文