求助 请问这样写对吗或者有比这个更简单的方法吗

求助 请问这样写对吗或者有比这个更简单的方法吗

希望各位大佬不吝赐教!!谢谢!!
这是题目:
题目描述
到了竞选班干部的时候了, 现有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];
			}	
		}
	}
}

猜你喜欢

转载自blog.csdn.net/Triver_/article/details/115037424
今日推荐