# include <stdio.h>
struct Student //创建结构体类型
{
int xue_hao;
int s;
}stu[10000]; //创建结构体数组
intmain(void)
{
int i,j,k,k1,m,n,m1,xuehao,s1,min,ch;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
{
scanf("%d%d",&stu[i].xue_hao,&stu[i].s);
}
m=1.5*m; //确定上限人数
for(i=0;i<(n-1);i++) //冒泡法按成绩排名,并相应的交换学号
for(j=0;j<(n-i-1);j++)
if(stu[j].s<stu[j+1].s)
{
xuehao=stu[j].xue_hao;
stu[j].xue_hao=stu[j+1].xue_hao;
stu[j+1].xue_hao=xuehao;
s1=stu[j].s;
stu[j].s=stu[j+1].s;
stu[j+1].s=s1;
}
j=0;
for(i=0;i<n;i=j) //对相同成绩进行处理
{
for(;;j++)
{
if(stu[i].s=stu[j].s)
break;
}
ch=j-i;
for(k1=0;k1<(ch-1);k1++)
{
for(k=0;k<(ch-1);k++)
if(stu[i+k].xue_hao>stu[i+k+1].xue_hao)
{
xuehao=stu[i+k].xue_hao;
stu[i+k].xue_hao=stu[i+j+1].xue_hao;
stu[i+k+1].xue_hao=xuehao;
}
}
}
min=stu[m1-1].s; //最后上限人数确定
for(i=0;;i++)
{
if(stu[i].s==min)
break;
}
m1=m1+i;
printf("%d%d",min,m1);//分数线和人数
for(i=0;i<m1;i++) //对学号和人数的打印
{
printf("%d%d\n",stu[i].xue_hao,stu[i].s);
}
return 0;
}
希望大佬指导1