为什么这个题我这样的解法就不对呀?
#include <iostream>
#define endl '\n'
using namespace std;
int n=0;
int a[1000]={0};
int sign[1001]={0};
int findmax()
{
int max=0;
int maxnum=0;
for(int i=0;i<1000;i++)
{
if(sign[i]==0)
{
continue;
}
else
{
if(sign[i]>maxnum)
{
max=i;
maxnum=sign[i];
}
}
}
return max;
}
int main()
{
int t=0,num=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
sign[a[i]]++;
}
for(int i=0;i<1000;i++)
{
if(sign[i]==0)
{
continue;
}
else
{
num++;
}
}
for(int i=0;i<num;i++)
{
t=findmax();
cout<<t<<" "<<sign[t]<<endl;
sign[t]=0;
}
}