助けてください、これは正しいですか、それともこれより簡単な方法がありますか?
皆さんが私を啓発することを躊躇しないことを願っています!!ありがとうございました!!
これがタイトルです:
タイトルの説明。
幹部のためにキャンペーンを行う時が来ました。候補者の数を表すn個の数字があります。どの学生が最も投票数が多いか。(複数の人がいる場合は、最小の数値が出力されます。)
入力
1行目に整数n(1≤n≤1000 )を入力します。
2行目に、n個の整数a0、a1、a2、…an-1(1≤ai≤1000)を入力します。
出力
出力は1行を占めます。投票数が最も多い人の数です。
サンプル入力
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];
}
}
}
}