C语言二维数组最大值最小值及下标查找算法
以下是使用C语言编写的解决方案:
#include <stdio.h>
void findMaxAndMin(int arr[][10], int n, int m) {
int max = arr[0][0];
int min = arr[0][0];
int maxRow = 0;
int maxCol = 0;
int minRow = 0;
int minCol = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
maxRow = i;
maxCol = j;
}
if (arr[i][j] < min) {
min = arr[i][j];
minRow = i;
minCol = j;
}
}
}
printf('max=%d row=%d col=%d\n', max, maxRow, maxCol);
printf('min=%d row=%d col=%d\n', min, minRow, minCol);
}
int main() {
int n, m;
while (scanf('%d %d', &n, &m) != EOF) {
int arr[10][10];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf('%d', &arr[i][j]);
}
}
findMaxAndMin(arr, n, m);
}
return 0;
}
解释:
- 首先,在主函数中使用
scanf函数循环读取多组数据,每组数据包含两个整数n和m,表示二维数组的行数和列数。 - 定义一个二维数组
arr,大小为10×10,用于存储输入的二维数组数据。 - 使用两个嵌套的
for循环,依次读取n行m列的二维数组数据,并存入数组arr中。 - 调用
findMaxAndMin函数,传入数组arr、行数n和列数m作为参数,进行最大值和最小值的查找。 - 在
findMaxAndMin函数中,使用两个嵌套的for循环,遍历二维数组arr,同时使用变量max和min分别记录最大值和最小值。同时,使用变量maxRow、maxCol、minRow和minCol分别记录最大值和最小值的行列下标。 - 在循环结束后,使用
printf函数输出最大值、最小值以及它们的行列下标。 - 循环继续,直到所有的数据都被处理完毕。
- 注意:为了避免输入结束后出现无限循环,使用
scanf函数的返回值来判断是否到达文件末尾(EOF)。
原文地址: https://www.cveoy.top/t/topic/DwF 著作权归作者所有。请勿转载和采集!