ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1032 挖掘机技术哪家强 (20 分)

2021-07-17 11:35:17  阅读:173  来源: 互联网

标签:school 20 int MAX 编号 学校 总分 挖掘机 1032


1032 挖掘机技术哪家强 (20 分)

为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。

输入格式:

输入在第 1 行给出不超过 105 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。

输出格式:

在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。

输入样例:

6
3 65
2 80
1 100
2 70
3 40
3 0

输出样例:

2 150

思路

  • 令数组school[maxn]记录每一个学校的总分,初值为0。对每一个读入的学校schId与其对应的分数score,令school[schId]+=score
  • 令变量k记录最高总分的学校编号,变量MAX记录最高总分,初值为-1.由于学校是连续编号的,因此枚举1~N,不断更新k和MAX即可

我的代码

#include<stdio.h>
int main(){
	int n, k = 1, MAX = -1;//用k记录最大总分的学校的编号 
	int school[100000]= {0};//记录每个学校的总分
	int schId, score;
	scanf("%d", &n);
    //这段是我写错的,因为学号是从1开始的,所以这样的话可能前面没有问题,但时编号一大就会出现问题,一直部分错误
	/*for(int i = 0; i < n; i++)*/
    for(int i = 1; i <= n; i++){//但是就算这样写,投到c通道还是有部分错误,投c++通道是正确的
		scanf("%d %d", &schId, &score);
		school[schId] += score;//把相同学校编号的成员的分数相加记录总分 
	}
	for(int i = 1; i <= n; i++){
		if(school[i] >MAX){//把每个学校的总分和max比较,谁更大谁更新给max,找出最大值 
			k = i;
			MAX = school[i];
		}
	}
	printf("%d %d", k, MAX); 
	return 0;
} 

示例输出时对的,但是有部分错误。改过了之后对了

参考代码

数组的定义与我的不一样,下面这样比较好。下次学习一下!

  1. 提前定义宏定义数组的最大值已经数组
  2. cstdio是将stdio.h的内容用C++头文件的形式表示出来
    cstdio 和 stdio.h是有差别的,并不是同样的文件
    stdio.h是以往的C和C++的头文件,cstdio是标准C++(STL),且cstdio中的函数都是定义在一个名称空间std里面的,如果要调用这个名字空间的函数,必须得加std::或者在文件中声明using namespace std。
  3. 这个与循环的把每一个值和循环值比较的方法也很好,所以MAX的初始值要设为-1,因为最低值是0。学习!!学习!!
#include<cstdio>
const int maxn = 100010;
int school[maxn] = {0};
int main(){
	int n, k = 1, MAX = -1;//用k记录最大总分的学校的编号 
	int schId, score;
	scanf("%d", &n);
	for(int i = 0; i < n; i++){
		scanf("%d %d", &schId, &score);
		school[schId] += score;//把相同学校编号的成员的分数相加记录总分 
	}
	for(int i = 1; i <= n; i++){
		if(school[i] >MAX){//把每个学校的总分和max比较,谁更大谁更新给max,找出最大值 
			k = i;
			MAX = school[i];
		}
	}
	printf("%d %d", k, MAX); 
	return 0;
} 

注意:上面代码在测试是要传入c++通道才能运行成功

标签:school,20,int,MAX,编号,学校,总分,挖掘机,1032
来源: https://www.cnblogs.com/shiff/p/15022948.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有