由键盘给一个3行4列的二维数组输入数据,然后找出每行中的最大数及其位置 Input 输入12个整数 Output 输出每行的最大数及其行列号 C语言 二维数组
时间: 2024-12-22 21:23:55 浏览: 50
在C语言中,你可以通过遍历二维数组并维护每一行的最大值和其索引来完成这个任务。以下是简单的步骤以及对应的代码示例:
首先,你需要创建一个二维数组,并接收用户输入的12个整数。假设数组名为`matrix[3][4]`。
```c
#include <stdio.h>
// 函数声明
void findMaxInRow(int row, int col, int matrix[3][4], int maxValues[], int* maxPositions);
int main() {
int matrix[3][4];
int maxValues[3]; // 存储每行最大值
int maxPositions[3][2]; // 存储最大值所在的行和列
// 输入12个整数
for (int i = 0; i < 3; i++) { // 行数
for (int j = 0; j < 4; j++) { // 列数
scanf("%d", &matrix[i][j]);
}
}
// 找出每行的最大数和位置
for (int i = 0; i < 3; i++) {
findMaxInRow(i, 0, matrix, maxValues, maxPositions);
}
// 输出结果
printf("每行的最大数和位置:\n");
for (int i = 0; i < 3; i++) {
printf("行 %d 的最大数:%d,位于第 %d 列\n", i+1, maxValues[i], maxPositions[i][1]+1);
}
return 0;
}
// 辅助函数,用于查找单行最大值
void findMaxInRow(int row, int col, int matrix[3][4], int maxValues[], int* maxPositions) {
if (col == 4) {
maxValues[row] = matrix[row][0]; // 设置首元素为当前行最大值
maxPositions[row][0] = 0; // 初始化最大值位置
} else {
if (matrix[row][col] > maxValues[row]) {
maxValues[row] = matrix[row][col];
maxPositions[row][0] = col; // 更新最大值位置
}
findMaxInRow(row, col + 1, matrix, maxValues, maxPositions); // 继续处理下一列
}
}
```
这个程序首先初始化最大值数组和位置数组,然后递归地遍历每个元素,如果找到更大的值,就更新相应的最大值和位置。最后,在主函数中打印出每行的最大数值及其所在的位置。
阅读全文
相关推荐


















