#include <stdio.h> int main() { int a, b; while (scanf("%d %d", &a, &b) != EOF) { // 注意 while 处理多个 case // 64 位输出请用 printf("%lld") to int data[a][b]; int cnt = 0; while (cnt < a * b) { scanf("%d", &data[cnt / b][cnt % b]); cnt++; } int i,j; int rowSum[a],maxIndex[a],max,index; for(i=0;i<a;i++){ rowSum[i]=0; max=-1; for(j=0;j<b;j++){ //计算行和 rowSum[i]+=data[i][j]; //寻找第一个行最大值所在下标 if(data[i][j]>max){ max=data[i][j]; index=j; } } maxIndex[i]=index; } for(i=0;i<a;i++){ for(j=0;j<b;j++){ if(j==maxIndex[i]){ printf("%d ",rowSum[i]); }else{ printf("%d ",data[i][j]); } } printf("\n"); } } return 0; }