第五次回答这个问题了。。。实在不想写了。。。原来写的你改一下吧,不会改再问哈
#include<stdio.h>
struct people
{
int number;
int mark;
}student[8];
int main()
{
int i,j;
double pass=0,good=0;
printf("请输入选手编号和成绩:\n");
for(i=1;i<=7;i++)
{
scanf("%d %d",&student[i].number,&student[i].mark);
if(student[i].mark>=60)
{
pass++;
}
if(student[i].mark>=90)
{
good++;
}
}
for(j=0;j<6;j++) //进行9次循环,实现9趟比较。
{
for(i=1;i<=6-j;i++) //在每一趟中进行9-j次比较。
{
if(student[i].mark<student[i+1].mark) //相邻两个数比较。
{
student[0].number=student[i].number;
student[0].mark=student[i].mark;
student[i].number=student[i+1].number;
student[i].mark=student[i+1].mark;
student[i+1].number=student[0].number;
student[i+1].mark=student[0].mark;
}
}
}
printf("及格率为:%.2lf\n",pass/7);
printf("优秀率为:%.2lf\n",good/7);
printf("排行榜:\n");
for(i=1;i<=7;i++)
{
printf("第%d名:%d %d\n",i,student[i].number,student[i].mark);
}
}
下面是上述函数输出效果。。。