用C语言:输入n和m的值(n<10,m<10),以及一个 n×m的矩阵,找出每行中最大的元素并与该行第 1列的元素进行交换,输出交换后的矩阵。
时间: 2024-01-22 07:19:12 浏览: 63
C语言程序设计-求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个);.c
5星 · 资源好评率100%
下面是用C语言实现的代码:
```c
#include <stdio.h>
int main()
{
int n, m;
int matrix[10][10];
printf("请输入n和m的值(n<10,m<10):\n");
scanf("%d%d", &n, &m);
printf("请输入一个 %d×%d 的矩阵:\n", n, m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &matrix[i][j]);
}
}
for (int i = 0; i < n; i++) {
int max_index = 0;
for (int j = 0; j < m; j++) {
if (matrix[i][j] > matrix[i][max_index]) {
max_index = j;
}
}
int temp = matrix[i][0];
matrix[i][0] = matrix[i][max_index];
matrix[i][max_index] = temp;
}
printf("交换后的矩阵为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
首先,我们定义了一个二维数组 `matrix` 来存储输入的矩阵,同时定义了两个变量 `n` 和 `m` 来存储矩阵的行数和列数。然后,我们通过 `scanf` 函数从标准输入中读取 `n` 和 `m` 的值,再通过两个嵌套的循环从标准输入中读取矩阵中的每个元素。
接着,我们通过两个嵌套的循环遍历每一行,找出每行中最大的元素,并记录下它的列号 `max_index`。然后,我们将该行第一个元素与最大元素进行交换,即将 `matrix[i][0]` 和 `matrix[i][max_index]` 的值互换。
最后,我们通过两个嵌套的循环打印出交换后的矩阵。
阅读全文