改了下,过了 #include<stdio.h> struct stu{     int num;     int mark; }; int main(void) {     int n,m,i,j,min,max,t;     struct stu c[5005];     scanf("%d%d",&n,&m);     m=m+m/2;     for(i=1;i<=n;i++)         scanf("%d%d",&c[i].num,&c[i].mark);     for(i=1;i<=n-1;i++)     {         max=i;         for(j=i+1;j<=n;j++)             max=(c[max].mark>=c[j].mark)?max:j;         if(max!=i)             c[5005]=c[i],c[i]=c[max],c[max]=c[5005];     }     t=c[m].mark;     for(i=1;c[i].mark>=t;i++)     {         min=i;         for(j=i+1;c[j].mark==c[i].mark;j++)         min=(c[min].num<=c[j].num)?min:j;         if(min!=i)             c[5000]=c[i],c[i]=c[min],c[min]=c[5000];     }     printf("%d %d\n",t,i-1);     t=i;     for(i=1;i<t;i++)         printf("%d %d\n",c[i].num,c[i].mark);     return 0; }