求助 请问这样写对吗或者有比这个更简单的方法吗
希望各位大佬不吝赐教!!谢谢!!
这是题目:
题目描述
到了竞选班干部的时候了, 现有n个数, 代表所投人选的编号。请问哪位编号的同学选票最多。(若有多人, 则输出编号最小的)
输入
第一行输入一个整数n(1 ≤ n ≤ 1000)。
第二行输入n个整数a0, a1, a2, … an-1(1 ≤ ai ≤ 1000)。
输出
输出占一行。为票数最多人的编号。
样例输入
6
4 1 7 8 8 5
样例输出
8
#include<iostream>
using namespace std;
main()
{
int n,i,j,f,m,k,a[1000],b[1000],c[1000];
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n;i++)
{
f=0;
if(a[i]!=0)
{
f=1;
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])
{
f=f+1;
a[j]=0;
}
}
}
b[i]=f;
} // b为不同编号所得票数
for(i=0;i<n;i++)
{
c[i]=0;
if(b[i]!=0)
{
m=1;
if(i<n-1)
{
for(j=0;j<n;j++)
{
if(b[i]<b[j])
{
m=0;
}
}
}
if(i==n-1)
{
for(j=i-1;j>=0;j--)
{
if(b[i]<b[j])
{
m=0;
}
}
}
if(m==1)
{
c[i]=a[i];
}
}
}
for(i=0;i<n;i++)
{
if(c[i]!=0)
{
k=1;
if(i<n-1)
{
for(j=0;j<n;j++)
{
if(c[j]!=0)
{
if(c[i]>c[j])
{
k=0;
}
}
}
}
if(i==n-1)
{
for(j=i-1;j>=0;j--)
{
if(c[j]!=0)
{
if(c[i]>c[j])
{
k=0;
}
}
}
}
if(k==1)
{
cout<<c[i];
}
}
}
}