假设本次期中考试有n个人参加,考试结束后,每个人都会得到一个分数,分数的取值是0至100的整数。
现在Derson老师想知道同分值人数最多的是哪一个分值?人数是多少?,请你编程求解。
输入
第一行输入一个整数n,表示参加期中考试的人数。(1<=n<=1000)
第二行输入n个分数,分数的取值是0至100的整数。
输出
输出同分值人数最多的分值及人数。
若同分值人数最多的分值有多个,请按分值从小到到依次输出(分多行输出)
样例输入 Copy
20 88 88 93 5 88 88 5 7 93 9 93 88 93 5 88 93 7 93 88 93
样例输出 Copy
88 7 93 7
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int score[n];
int count[101]={0};//分数可能有100个,再留一个放\0
for(int i=0;i<=n-1;i++)
{
scanf("%d",&score[i]);//输入n个值
count[score[i]]++;//对应的分数计数自增
}
int maxcount=0;
for(int j=0;j<=100;j++)
{
if(count[j]>maxcount)//只要比最大分数大,就设该数为最大分数
maxcount=count[j];
}
for(int m=0;m<=100;m++)//找出最多人数分数对应的分数
{
if(count[m]==maxcount)
{
printf("%d %d\n",m,maxcount);
}
}
return 0;
}
思路:先定义score数组,把分数放进数组里;并·把每个分数用count++统计;
score[i]里面i是0到n-1;
count[i]里面i是每个score[i]的值,也就是score数组的元素,就是分数;
明晰这俩个不同的数组,就好做题了