将键盘输入的任意 30 个整型数(可以用随机数产生),依次存放到已定义的 5×6 整型二维数组中,并从该二维数组的每一列中选出本列的最小数,再从已选出的这6个数中选出最大数,打印该最大数和它所在的行号和列号。c语言
时间: 2024-11-27 07:22:14 浏览: 9
找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在列上最小(也可能没有鞍点)。Java
4星 · 用户满意度95%
在C语言中,你可以按照以下步骤实现这个功能:
首先,定义一个5x6的整型二维数组`arr`,然后生成30个随机数并存储到数组中。接着遍历每一列找到最小值,最后从这六列的最小值中找出最大值及其位置。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROWS 5
#define COLS 6
// 定义二维数组
int arr[ROWS][COLS];
// 生成随机数
void generate_random_numbers() {
srand(time(0));
for (int i = 0; i < ROWS * COLS; i++) {
arr[i / COLS][i % COLS] = rand() % 100; // 生成0到99之间的随机整数
}
}
// 求每列最小值
int find_min_per_column(int column) {
int min = arr[0][column];
for (int i = 1; i < ROWS; i++) {
if (arr[i][column] < min)
min = arr[i][column];
}
return min;
}
// 找出所有列的最小值中的最大值
int find_max_of_mins() {
int max_min = arr[0][0], max_row = 0, max_col = 0;
for (int col = 0; col < COLS; col++) {
int temp_min = find_min_per_column(col);
if (temp_min > max_min) {
max_min = temp_min;
max_row = col / ROWS;
max_col = col % ROWS;
}
}
return max_min, max_row + 1, max_col + 1; // 行、列号从1开始计数
}
int main() {
generate_random_numbers();
printf("最大值: %d\n", find_max_of_mins()[0]);
printf("最大值所在行号: %d\n", find_max_of_mins()[1]);
printf("最大值所在列号: %d\n", find_max_of_mins()[2]);
return 0;
}
```
当你运行这个程序,它会生成30个随机整数填充到二维数组,然后计算并打印出最大的最小值以及其所在的位置。
阅读全文