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;
}
#include<stdio.h>
#include<math.h>
#define PI acos(-1.0)
int main()
{
int r, c;
while(scanf("%d%d",&r,&c)!=EOF)
{
int a[100][100];
for(int i=0; i<r; i++)
for(int j=0; j<c; j++)
scanf("%d",&a[i][j]);
for(int i=0; i<r; i++)
for(int j=0; j<c; j++)
{
int rmaxn = a[i][j], k1;//行最大
int cminn = a[i][j], k2;//列最小
for(k1=0; k1<c; k1++)//同一行比较
{
if(a[i][k1] >= rmaxn && k1!=j)
break;
}
for(k2=0; k2<r; k2++)//同一列比较
{
if(a[k2][j] <= cminn && k2!=i)
break;
}
if(k1==c&&k2==r)
printf("%d\n",a[i][j]);
}
}
return 0;
}
/*
3 4
3 1 2 1
4 5 6 7
6 7 8 9
3
*/