编写一个程序输入一个mXn的矩阵存储并输出,并且求出每行的最大值和每行的总和。 要求把每行总和放入每行最大值的位置,如果有多个最大值,取下标值最小的那一个作为最大值。 最后将结果矩阵输出
代码:
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main(){
int m,n;
int a[100][100];
while(cin>>m>>n){
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
}
}
for(int i=0;i<m;i++){
int max=a[i][0];
int sum=0;
int t=0;
for(int j=0;j<n;j++){
//sum
sum=sum+a[i][j];
//max
if(max<a[i][j]){
max=a[i][j];
t=j;
}
}
a[i][t]=sum;
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<a[i][j]<<' ';
}
cout<<endl;
}
}
return 0;
}
笔记:
1可能有多组测试数据的表示:while(cin>>m>>n)
2 一定要注意各个变量的初始值和作用范围,不然可能出现越界危险;如sum,t max的定义
3 又忘了最后的return 0;