/* 题目描述: 编写一个程序输入一个mXn的矩阵存储并输出,并且求出每行的最大值和每行的总和。 要求把每行总和放入每行最大值的位置,如果有多个最大值,取下标值最小的那一个作为最大值。 最后将结果矩阵输出。 输入: 输入的第一行包括两个整数m和n(1<=m,n<=100),分别代表矩阵的行和列的维数。 接下来的m行每行有n个数,代表矩阵的元素。 输出: 可能有多组测试数据,对于每组数据,输出按题目要求执行后的矩阵。 样例输入: 3 3 1 1 1 1 1 1 1 1 1 3 3 3 2 3 2 3 2 3 2 3 样例输出: 3 1 1 3 1 1 3 1 1 8 2 3 2 7 2 8 2 3 */ # include <stdio.h> int main(void) { int m,n,temp = 0,max = 0,flag = 0; int matrix[100][100] = {0}; while(scanf("%d %d", &m, &n) != EOF) { getchar(); //吸收回车符。 if((m <= 0) && (n <= 0)) break; int i,j; for(i = 0; i < m; i++) { for(j = 0; j < n; j++) { scanf("%d", &matrix[i][j]); } } for(i = 0; i < m; i++) { for(j = 0; j < n; j++) { temp = temp + matrix[i][j]; } max = matrix[i][flag]; for(j = 0; j < n; j++) { if(max < matrix[i][j]) flag = j; } matrix[i][flag] = temp; temp = 0; flag = 0; } for(i = 0; i < m; i++) { for(j = 0; j < n; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } } return 0; }
时间: 2024-10-11 22:59:51