一刀99999级 C语言

题目描述:

独特属性,由你打造。

单挑BOSS,怒刷装备。

皇城PK,胜者为王。

屠龙宝刀,点击就送。

(屠龙宝刀给了你多少广告费,我贪玩蓝月出双倍)

老王在寝室刷剧的时候,总是看到了如此带劲的广告词,于是就试玩了一下,便沉迷其中。 现在刷完了一个boss,爆了一地的装备(n行m列)。游戏管理员要求他可以选择其中一行或者一列的装

备捡到他的背包中。每件装备都有各自的价值v(0<v<1000)

输入格式:

第一行输入两个整数n,m(0<n,m<=10) 接下来输入n行m列的矩阵,共n*m个数代表装备各自的价值v。

输出格式:

选择其中一行或者其中一列的最大价值。

输入样例:

在这里给出一组输入。例如:

7 4
532 517 102 80
907 525 829 84
635 629 682 921
964 304 642 364
16 717 898 53
264 824 751 558
92 496 963 277
2 7
333 743 632 559 27 40 323
149 925 703 953 427 76 161

输出样例:

4867
3394

深刻思想:

新手上道,大佬请飘过~
因为要求行的和与列的和,并求出最有价值数,也就是最大的数。
首先,我们在输入的时候就可以将行的各个和都存入到数组中。
再来一次列的循环,将列的各个和存放在数组中,最后将数组循环,找出最大的值。。
可能这就是大家所说的暴力求解吧。。
若有新思想,望告知。。。

话不多说,代码奉上:

#include<stdio.h>
#include<string.h>
int main()
{
     int n,m,a[100][100],i,j,sum[100],s,count=0,max;
     while(scanf("%d %d",&n,&m)!=EOF)//因为数据组没有讲明结束条件,所以这里用读写是否失败来判定结束
     {
   	     count=0;
         for(i=0;i<n;i++)
         {
   	         s=0;
             for(j=0;j<m;j++)
             {
	             scanf("%d",&a[i][j]);
	             s+=a[i][j];
	         }  
             sum[count++]=s;
         }
         for(j=0;j<m;j++)
         {
   	         s=0;
             for(i=0;i<n;i++)s+=a[i][j];
             sum[count++]=s;
         }
         max=sum[0];
         for(i=1;i<count;i++)if(sum[i]>max)max=sum[i];
         printf("%d\n",max);
   }
   return 0;  
}
发布了16 篇原创文章 · 获赞 26 · 访问量 1156

猜你喜欢

转载自blog.csdn.net/qq_43514659/article/details/102803716
今日推荐