1 条题解

  • 0
    @ 2025-4-12 21:47:18

    C :

    #include <stdio.h>
    #include <string.h>
    int main()
    {
    	char xm[20][20];
    	void maopao(char xm[20][20],int bh[]);
    	int zheban(int bh[],int l,int n);
    	int bh[20];
    	int i,n,l,m;
    	for (i=0;i<10;i++)
    	{
    		scanf("%s",&xm[i]);
    		l=strlen(xm[i]);
    		xm[i][l]='\0';
    		scanf("%d",&bh[i]);
    	}
    	scanf("%d",&n);
    	maopao(xm,bh);
    	m=zheban(bh,10,n);
    	printf("%s\n",xm[m]);
    	return 0;
    }
    void maopao(char xm[20][20],int bh[])
    {
    	int i,j,flag,t;
    	char str[20];
    	for (i=0;i<9;i++)
    	{
    		flag=0;
    		for(j=0;j<9-i;j++)
    		{
    			if (bh[j]>bh[j+1])
    			{
    				flag=1;
    				t=bh[j];
    				bh[j]=bh[j+1];
    				bh[j+1]=t;
    				strcpy(str,xm[j]);
    				strcpy(xm[j],xm[j+1]);
    				strcpy(xm[j+1],str);
    			}
    		}
    		if (flag==0) break;
    	}
    	for (i=0;i<10;i++)
    		printf("%s %d\n",xm[i],bh[i]);
    }
    int zheban (int bh[],int l,int n)
    {
    	int index=-1;
    	int left=0,right=l,mid=(left+right)/2;
    	while (left<=right)
    	{
    		if (n==bh[mid])
    		{
    			index=mid;
    			break;
    		}
    		else if (n>bh[mid])
    		{
    			left=mid+1;
    			mid=(left+right)/2;
    		}
    		else 
    		{
    			right=mid-1;
    			mid=(left+right)/2;
    		}
    
    	}
    	return (index);
    }
    

    C++ :

    #include <stdio.h>
    #include <string.h>
    int main() {
    	void input(char name[][21], int num[]);
    	void sort(char name[][21], int num[]);
    	void check(char name[][21], int num[], int target, char output[]);
    	char name[10][21], output[21];
    	int num[10];
    	int i, target;
    	input(name, num);
    	sort(name, num);
    	for (i = 0;i < 10;i++)
    		printf("%s %d\n", name[i], num[i]);
    	scanf("%d", &target);
    	check(name, num, target, output);
    	puts(output);
    	return 0;
    }
    void input(char name[][21], int num[]) {
    	int i;
    	for (i = 0;i < 10;i++)
    		scanf("%s%d", name[i], &num[i]);
    }
    void sort(char name[][21], int num[]) {
    	int i, j, temp;
    	char tempname[21];
    	for (i = 0;i < 10;i++) {
    		for (j = i + 1;j < 10;j++) {
    			if (num[i] > num[j]) {
    				temp = num[i];
    				num[i] = num[j];
    				num[j] = temp;
    				strcpy(tempname, name[i]);
    				strcpy(name[i], name[j]);
    				strcpy(name[j], tempname);
    			}
    		}
    	}
    }
    void check(char name[][21], int num[], int target, char output[]) {
    	int low, high, mid;
    	low = 0;
    	high = 10;
    	while (low < high) {
    		mid = (low + high) / 2;
    		if (num[mid] < target)
    			low = mid + 1;
    		else
    			high = mid;
    	}
    	strcpy(output, name[low]);
    }
    
    

    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) {
    	  A a[] = new A[10] ;
    	   for (int i = 0; i < 10; i++) {
    		  a[i] = new A() ;
    		  a[i].name = s.next() ;
    		  a[i].num = s.nextInt() ;
    	  }
    	   
    	   int num = s.nextInt() ;
    	   
    	   Arrays.sort(a);
    	   
    	   for (int i = 0; i < a.length; i++) {
    		  System.out.println(a[i].name+" "+a[i].num);
    	   }
    	   for (int i = 0; i < a.length; i++) {
              if(a[i].num==num){
            	  System.out.println(a[i].name);
              }
    	   }
    	   
       }
       
    }
    
    class A implements Comparable{
    	String name ;
    	int num ;
    	@Override
    	public int compareTo(Object o) {
    		A a = (A) o ;
    		
    		if(this.num>a.num){
    			return 1 ;
    		}else if(this.num==a.num){
    		   return 0;
    		}else{
    			return -1 ;
    		}
    	}
    }
    
    
    • 1

    信息

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