矩阵最大值(简单模拟)

来源:互联网 发布:破解java手机游戏 编辑:程序博客网 时间:2024/06/04 22:52


链接:https://www.nowcoder.com/practice/9c550b6fe85d48bcad5a6025c6dc447d?tpId=40&tqId=21550&tPage=11&rp=11&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking
来源:牛客网

题目描述

编写一个程序输入一个mXn的矩阵存储并输出,并且求出每行的最大值和每行的总和。 要求把每行总和放入每行最大值的位置,如果有多个最大值,取下标值最小的那一个作为最大值。 最后将结果矩阵输出。 
输入描述:
输入的第一行包括两个整数m和n(1<=m,n<=100),分别代表矩阵的行和列的维数。接下来的m行每行有n个数,代表矩阵的元素。


输出描述:
可能有多组测试数据,对于每组数据,输出按题目要求执行后的矩阵。

输入例子:
3 31 1 11 1 11 1 13 33 2 32 3 23 2 3

输出例子:
3 1 13 1 13 1 18 2 32 7 28 2 3

AC code:

#include<iostream>#include<algorithm>#include<stdio.h>#include<map>#include<math.h>#include<string.h>#include<queue>#include<vector>#include<set>#define LL long long#define exp 1e-9#define MAXN 1000010using namespace std;int main(){//freopen("D:\\in.txt","r",stdin);    int m,n,i,j,mm,mj,sum;    int a[101][101];    while(scanf("%d%d",&m,&n)!=EOF)    {    for(i=1;i<=m;i++)    {    mm=-99999999;    mj=0;    sum=0;    for(j=1;j<=n;j++)    {    scanf("%d",&a[i][j]);    sum+=a[i][j];    if(mm<a[i][j])    {    mm=a[i][j];    mj=j;}}a[i][mj]=sum;}for(i=1;i<=m;i++){printf("%d",a[i][1]);for(j=2;j<=n;j++){printf(" %d",a[i][j]);}puts("");}}    return 0;}


0 0
原创粉丝点击