以下是使用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函数循环读取多组数据,每组数据包含两个整数nm,表示二维数组的行数和列数。
  • 定义一个二维数组arr,大小为10×10,用于存储输入的二维数组数据。
  • 使用两个嵌套的for循环,依次读取nm列的二维数组数据,并存入数组arr中。
  • 调用findMaxAndMin函数,传入数组arr、行数n和列数m作为参数,进行最大值和最小值的查找。
  • findMaxAndMin函数中,使用两个嵌套的for循环,遍历二维数组arr,同时使用变量maxmin分别记录最大值和最小值。同时,使用变量maxRowmaxColminRowminCol分别记录最大值和最小值的行列下标。
  • 在循环结束后,使用printf函数输出最大值、最小值以及它们的行列下标。
  • 循环继续,直到所有的数据都被处理完毕。
  • 注意:为了避免输入结束后出现无限循环,使用scanf函数的返回值来判断是否到达文件末尾(EOF)。
C语言二维数组最大值最小值及下标查找算法

原文地址: https://www.cveoy.top/t/topic/DwF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录