1032 挖掘机技术哪家强(20)
输入格式:
输入在第1行给出不超过10^5^的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。
输出格式:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
思路一:
1)定义int型变量n读入的参赛人数,定义长度为n的double型数组p[N]存放每一个学校的的信息和成绩:p[N]表示学校编号为N的总分。初始化为0。
2)读入输入的参赛者的信息和成绩,若是同一个编号,则进行累加。
3)循环搜索比较的到最大的p[N]值,将其按照要求格式输出。
1 #include <stdio.h> 2 int main(){ 3 4 const int MAX_SIZE=100001; 5 int n=0,i,x,m;//输入的正整数,x:编号,y:成绩 .m:输出的学校编号 6 double p[MAX_SIZE],y,max=0.0;//max输出的成绩 7 8 scanf("%d",&n); 9 for(i=0;i<=n;i++){//初始化0 10 p[i]=0; 11 } 12 for(i=1;i<=n;i++){ 13 scanf("%d %lf",&x,&y); 14 p[x]+=y; 15 } 16 for(i=1;i<=n;i++){ 17 if(p[i]>max){ 18 max=p[i]; 19 m=i; 20 } 21 } 22 printf("%d %.0f",m,max); 23 24 return 0; 25 }