从键盘输入3行4列数据,编程找出其中最大值及其行列下标并输出,请填空完成相应功能。 #include <stdio.h> #define M 3 #define N 4 int main(void) {int a[M][N],i,j,max,maxi,maxj; //maxi为最大值所在的行下标,maxj为列下标 for(i=0; i<M ;i++) //输入数据同时查找最大值 for(j=0; j<N ;j++) {scanf("%d",&a[i][j]);
时间: 2024-03-24 17:39:03 浏览: 72
输入三位数找最大值.cpp
好的,这是一个比较经典的问题,下面是我的解决方案:
```c
#include <stdio.h>
#define M 3
#define N 4
int main(void) {
int a[M][N], i, j, max, maxi, maxj;
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
scanf("%d", &a[i][j]);
if ((i == 0 && j == 0) || a[i][j] > max) {
max = a[i][j];
maxi = i;
maxj = j;
}
}
}
printf("Max: %d, row: %d, column: %d\n", max, maxi, maxj);
return 0;
}
```
这个程序的思路是,使用双重循环输入数组的值,并且在输入的同时查找最大值,并记录最大值所在的行和列下标。这个程序的时间复杂度为 $O(MN)$,因为需要遍历整个二维数组寻找最大值。
阅读全文