统计最高票数
统计最高票数时限:1000MS
内存限制:65536KByte
总提交:1336 测试通过:634
题目描述
信息技术学院需要票选出新生之星,经过重重选拔,最后只剩下10个候选人,编号从1-10。现在需要全体新生从这10个同学中票选出一人当选。
首先输入这次投票的总票数n,这n张票中的每张票上都写有投票者想要投的人选的编号。例如票值为1,表示投票给1号候选人。但是,总有些调皮的同学为了捣乱而投了无效票。无效票指的是票值不是1-10的那些票,例如票值为100的票就是一张无效票。现在请你编写一个程序,统计得票最高者的票数和他的编号。(为了简单起见,我们的统计中不会出现有两个候选人得票相同的情况。)
输入
开始一个正整数n表示总共有多少张票。接着是n个整数,表示对应票的票值。
输出
输出这次投票结果中,得票最多者的票数和编号,中间用一个空格分隔,并独占一行。
样例输入
10
1 1 1 2 3 4 4 1 1 100
样例输出
5 1
提示
除了需要一个变量记录当前最大值之外,还需要一个变量记录当前最大值的编号
#include<stdio.h>
int main()
{
int temp,a[100],b[100]={0},c[100],n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{if(a[i]==a[j]&&a[i]<=10&&a[i]>0)
b[i]++;c[i]=a[i];}
i+=b[i];}
for(i=0;i<n-1;i++)
{for(j=0;j<n-i;j++)
if(a[j]<a[j+1])
{temp=b[j];b[j]=b[j+1];b[j+1]=temp;temp=c[j];c[j]=c[j+1];c[j+1]=temp;}
}
if(n!=0&&b[0]!=0)
printf("%d %d\n",b[0],c[0]);
return 0;
}