C语言数组的应用求解

4.将键盘输入的任意 30个整型数(可以用随机数产生),依次存放到已定义的 5×6 整型
二维数组中,并从该二维数组的每一列中选出本列的最小数,再从已选出的这6个数中选出
最大数,打印该最大数和它所在的行号和列号

该回答引用chatgpt:


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define ROWS 5
#define COLS 6

int main() {
    int arr[ROWS][COLS];
    int i, j, max, max_row, max_col;

    // 用随机数填充二维数组
    srand(time(NULL)); // 设置随机数种子
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            arr[i][j] = rand() % 100;
        }
    }

    // 打印原始数组
    printf("原始数组:\n");
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("%d\t", arr[i][j]);
        }
        printf("\n");
    }

    // 找出每一列的最小数并记录最大数的行号和列号
    max = arr[0][0];
    max_row = max_col = 0;
    for (j = 0; j < COLS; j++) {
        int min = arr[0][j];
        for (i = 1; i < ROWS; i++) {
            if (arr[i][j] < min) {
                min = arr[i][j];
            }
        }
        if (min > max) {
            max = min;
            max_col = j;
        }
    }

    // 打印结果
    printf("结果:\n");
    printf("最大数:%d\n", max);
    printf("所在行:%d\n", max_row + 1); // 行号从1开始
    printf("所在列:%d\n", max_col + 1); // 列号从1开始

    return 0;
}