C++二维数组求最大值及其位置

二维数组处理:有一个5×5数组,从键盘为它输入数据,求出各行各列的数据之和(得到10个结果),并求出该数组中最大的数及其所在的行列号;提交以XXXXXXX_02命名的cpp文件
需要详细步骤,谢过各位大佬

第1个回答  2019-12-26
//参考代码 #include<stdio.h>int main(){ int i,j,max,r,c,a[3][4]={{1,5,7,8},{11,12,10,9},{2,4,6,3}}; //假设第一个数就是最大值 max=a[0][0]; r=c=0; //依次遍历数组 for(i=0;i<3;i++) for(j=0;j<4;j++) if(max<a[i][j]){//比较发现比最大值还大替换最大值,修改位置 max=a[i][j]; r=i; c=j; } printf("最大值为:%d,其在%d行 %d列。",max,r+1,c+1);//因为数组的下标从0开始所以r,c加1 return 0; }/*运行结果: 最大值为:12,其在2行 2列。*/
第2个回答  2019-12-26
#include<iostream>
using namespace std;
#define N 5
#define M 5
void main() { int a[N][M],b[N],c[M],m,n,i,j;
for ( i=0;i<N;i++ ) for ( j=0;j<M;j++ ) cin>>a[i][j];
for ( i=0;i<N;i++) { b[i]=0; for ( j=0;j<M;j++ ) b[i]+=a[i][j]; }
cout<<"每行数据元素之和: "; for ( i=0;i<N;i++ ) cout<<b[i]<<" "; cout<<endl;
for ( i=0;i<M;i++) { c[i]=0; for ( j=0;j<N;j++ ) c[i]+=a[j][i]; }
cout"每列数据元素之和: "; for ( i=0;i<M;i++ ) cout<<c[i]<<" "; cout<<endl;
m=n=0; for ( i=0;i<N;i++ ) for ( j=0;j<M;j++ ) if ( a[n][m]<a[i][j] ) {n=i;m=j;}
cout<<"最大数元素为: a["<<n<<"]["<<m<<"]="<<a[n][m]<<endl;
}本回答被网友采纳