1 条题解

  • 0
    @ 2025-2-14 20:57:47

    C :

    #include <stdio.h>  
    #include <stdlib.h>
    struct student  
    {  
        int num;  
        int score;  
    };
    int main()  
    {  
        struct student students[200];  
        int n,i,j;  
        struct student t;
    	while(scanf("%d",&n)!=EOF)  
        {
    		for(i=0;i<n;i++)  
            {  
                scanf("%d %d",&students[i].num,&students[i].score);  
            }  
            for(i=0;i<n-1;i++)  
            {  
                for(j=0;j<n-i-1;j++)  
                {  
                    if(students[j].score>students[j + 1].score)  
                    {  
                        t=students[j];  
                        students[j]=students[j+1];  
                        students[j+1]=t;  
                    }
    				else if(students[j].score==students[j+1].score)
    				{  
                        if(students[j].num>students[j+1].num)  
                        {  
                            t=students[j];  
                            students[j]=students[j+1];  
                            students[j+1]=t;  
                        }  
                    }  
                }  
            }
            for(i=0;i<n;i++)  
            {  
                printf("%d %d\n",students[i].num,students[i].score);  
            }  
        }  
          
        return 0;  
    }  
    
    

    C++ :

    #include <stdio.h>
    #include <stdlib.h>
    
    struct student
    {
    	int number;
    	int score;
    };
    
    int main()
    {
    	struct student students[101];
    	int n, i, j;
    	struct student temp;
    
    	while(scanf("%d",&n) != EOF)
    	{
    		//接收数据
    		for(i = 0; i < n; i++)
    		{
    			scanf("%d%d",&students[i].number,&students[i].score);
    		}
    
    		//冒泡排序
    		for(i = 0; i < n - 1; i ++)
    		{
    			for(j = 0; j < n - i - 1; j ++)
    			{
    				if(students[j].score > students[j + 1].score)
    				{
    					temp = students[j];
    					students[j] = students[j + 1];
    					students[j + 1] = temp;
    				}else if(students[j].score == students[j + 1].score)
    				{
    					if(students[j].number > students[j + 1].number)
    					{
    						temp = students[j];
    						students[j] = students[j + 1];
    						students[j + 1] = temp;
    					}
    				}
    			}
    		}
    
    		//输出排序结果
    		for(i = 0; i < n; i ++)
    		{
    			printf("%d %d\n",students[i].number,students[i].score);
    		}
    	}
    	
    	return 0;
    }
    

    Java :

    
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main{
       private static Scanner s = new Scanner(System.in) ;
       
       public static void main(String[] args) {
    	  while(s.hasNext()){
    		  int t = s.nextInt() ;
    		  A a[] = new A[t] ;
    		  for (int i = 0; i < t; i++) {
    			int num = s.nextInt() ;
    			int score = s.nextInt() ;
    			a[i] =  new A(num, score) ;
    			
    		  }
    		  
    		  Arrays.sort(a) ;
    		  
    		  for (int i = 0; i < a.length; i++) {
    			 System.out.println(a[i].num+" "+a[i].score);
    		  }
    	  }
       }
    }
    
    class A implements Comparable{
    	int num ;
    	int score ;
    	
    	public A(int num, int score) {
    		super();
    		this.num = num;
    		this.score = score;
    	}
    
    	@Override
    	public int compareTo(Object o) {
            A a = (A) o; 
            if(this.score<a.score){
            	return -1 ;
            }else if(this.score==a.score)
    		    return 0;
            else return 1 ;
    	}
    	
    	
    }
    
    
    • 1

    信息

    ID
    539
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者