[C/C++] 1032 挖掘机技术哪家强(20)(20 分)

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


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

##输入格式:

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

##输出格式:

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

##输入样例:

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

##输出样例:

2 150

#include 

int main()
{	
	int N;
	scanf("%d",&N);
	int num,grade;
	int school[100] = {0};
	while(N--){
		scanf("%d%d",&num,&grade);		
		school[num] += grade;
	}
	int q = 1,max = 0;
	for(int i=1;i<100;i++){
		if(school[i]>max){
			max = school[i];
			q = i;
		}
	}
	printf("%d %d\n",q,max);
	
	return 0;
 }

这样提交上去第四个测试点提示段错误,把数组放大到100000就可以了(因为题目N最大是105)
当用while(n–)时,要注意n已经变化了
完善了一下:遍历数组到N就好了,不用全部遍历

#include 

int main()
{	
	int N;
	scanf("%d",&N);
	int num,grade;
	int school[100000] = {0};//其实开辟n+1长度的数组即可
	for(int i = 0;imax){
			max = school[i];
			q = i;
		}
	}
	printf("%d %d\n",q,max);
	
	return 0;
 } 

你可能感兴趣的:(PAT-Basic)