11 solutions

  • 0
    @ 2021-10-17 11:23:25

    总的来说,这道题挺简单的,但是Wrong了很多次,事实证明对map的理解还不够,最开始用map来做的,又忽视了题意中的如果总成绩相等,按输入顺序排序

    不废话了,开始正题吧,总体来说,用结构体来做,就会变得异常简单。

    #include<bits/stdc++.h>
    using namespace std;
    struct student
    {
        string name;
    	int score;
    	string id;
    }arr[500],temp;
    int main()
    {
    	int a,b,m,n;
    	cin>>m;
    	for(int i=0;i<m;i++)
    	{
    		cin>>arr[i].name>>arr[i].score;
    	}
    	for(int i=0;i<m;i++)
            {
            	for(int j=0;j<m-i;j++)
                {
                	if(arr[j+1].score>arr[j].score)
                  {
                    temp=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=temp;
                  }
    			}
    		}
    
    	
    		
    		
        for(int i=0;i<m;i++)
        {
        	cout<<arr[i].name<<" "<<arr[i].score<<" ";
        	if(arr[i].score==0)
    		{
    			cout<<"Bad";
    		}
    		else if(arr[i].score>=1&&arr[i].score<200)
    		{
    			cout<<"Not good";
    		}
    		else if(arr[i].score>=200&&arr[i].score<300)
    		{
    			cout<<"Bronze medal";
    		}
    		else if(arr[i].score>=300&&arr[i].score<400)
    		{
    			cout<<"Silver medal";
    		}
    		else if(arr[i].score>=400)
    		{
    			cout<<"Gold medal";
    		}
    		cout<<endl;
    	}
    return 0;
    }
    

    是不是超级简单了! 不要被一种方法卡死,好好学习,天天向上!

    Information

    ID
    110
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    190
    Accepted
    70
    Uploaded By