c语言函数成绩排序输出 c语音成绩排序

用c语言编写从键盘输入学生的成绩,将成绩从高到低进行顺序输出,并同时输入指定学生的学号和成绩//这里我在网上找来运行着练手的,具体原作者我忘了保存,抱歉 。十分感谢他(她)的汗水 。
//可以自己微调一下
//成绩排序方面,可以用平均成绩排序输出模块 , 按相应科目更改一下数组序号则可
//或者,再写一个科目选择 , 按选择中的科目引用相应的数组内容则可以实现按科目排序
#includestring.h
#includestdio.h
/*定义学生结构体*/
struct Student
{
char ID[20];
char Name[20];
float Mark1;
float Mark2;
float Mark3;
float Average;
};

/*声明学生数组及学生数量*/
struct Student students[1000];
int num=0;

/*求平均值*/
float Avg(struct Student stu)
{
return (stu.Mark1+stu.Mark2+stu.Mark3)/3;
}

/*通过学号返回数组下标*/
int Student_SearchByIndex(char id[])
{
int i;
for (i=0;inum;i++)
{
if (strcmp(students[i].ID,id)==0)
{
return i;
}
}
return -1;
}

/*通过姓名返回数组下标*/
int Student_SearchByName(char name[])
{
int i;
for (i=0;inum;i++)
{
if (strcmp(students[i].Name,name)==0)
{
return i;
}
}
return -1;
}

/*显示单条学生记录*/
void Student_DisplaySingle(int index)
{
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name,
students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);
}

/*插入学生信息*/
void Student_Insert()
{
while(1)
{
printf("请输入学号:");
scanf("%s",students[num].ID);
getchar();

printf("请输入姓名:");
scanf("%s",students[num].Name);
getchar();

printf("请输入成绩:");
scanf("%f",students[num].Mark1);
getchar();

printf("请输入成绩:");
scanf("%f",students[num].Mark2);
getchar();

printf("请输入成绩:");
scanf("%f",students[num].Mark3);
getchar();

students[num].Average=Avg(students[num]);
num++;

printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}

}

/*修改学生信息*/
void Student_Modify()
{
//float mark1,mark2,mark3;
while(1)
{
char id[20];
int index;
printf("请输入要修改的学生的学号:");
scanf("%s",id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要修改的学生信息为:\n");
Student_DisplaySingle(index);
printf("-- 请输入新值--\n");

printf("请输入学号:");
scanf("%s",students[index].ID);
getchar();

printf("请输入姓名:");
scanf("%s",students[index].Name);
getchar();

printf("请输入成绩:");
scanf("%f",students[index].Mark1);
getchar();

printf("请输入成绩:");
scanf("%f",students[index].Mark2);
getchar();

printf("请输入成绩:");
scanf("%f",students[index].Mark3);
getchar();

students[index].Average=Avg(students[index]);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}

推荐阅读