C语言从键盘为3*3的矩阵输入数据,找出对角线上午最大的元素,以及所在的行号
时间: 2024-03-10 11:47:04 浏览: 60
好的,针对您的问题,我们可以使用C语言编写一个程序来实现。
首先,我们需要定义一个3*3的矩阵,并从键盘输入数据:
```c
#include <stdio.h>
int main() {
int matrix[3][3];
int i, j;
printf("请输入3*3的矩阵:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &matrix[i][j]);
}
}
```
接下来,我们需要找出对角线上的最大元素以及所在的行号:
```c
int max = matrix[0][0];
int row = 1;
for (i = 1; i < 3; i++) {
if (matrix[i][i] > max) {
max = matrix[i][i];
row = i + 1;
}
}
```
在上面的代码中,我们首先将对角线上第一个元素设为最大值。然后,我们从第二个元素开始遍历对角线,如果遇到更大的元素,就将其设为最大值,并记录其所在的行号。
最后,我们输出最大元素及其所在的行号:
```c
printf("对角线上最大的元素是 %d,所在的行号是 %d\n", max, row);
return 0;
}
```
完整代码如下:
```c
#include <stdio.h>
int main() {
int matrix[3][3];
int i, j;
printf("请输入3*3的矩阵:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &matrix[i][j]);
}
}
int max = matrix[0][0];
int row = 1;
for (i = 1; i < 3; i++) {
if (matrix[i][i] > max) {
max = matrix[i][i];
row = i + 1;
}
}
printf("对角线上最大的元素是 %d,所在的行号是 %d\n", max, row);
return 0;
}
```
希望能解答您的问题!
阅读全文