PTA乙级 1032
题目
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
输入格式:
输入在第 1 行给出不超过 10
5
的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。
输出格式:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
C语言实现
#include<stdio.h>
int findmark(int data[],int n);
int main(){
int n,id,s,schsum[101000]={0},k;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d %d",&id,&s);
schsum[id]+=s;
}
k=findmark(schsum,n);
printf("%d %d",k,schsum[k]);
return 0;
}
int findmark(int data[],int n){//函数功能:找数组中的最小值元素,并返回其下标
int max,i,maximum;
for(max=data[0],i=1,maximum=0;i<=n;i++){
if(data[i]>max) {
max=data[i];
maximum=i;
}
}
return maximum;
}
反思
不需要将n组输入放进数组中,直接输入一个处理一个,将其放进该学校的总分和中即可,简化代码