关于学生信息处理小代码
#include
#include
struct student
{
int nomber;
char name[10];
float yuwen;
float shuxue;
float tiyu;
float sum;
};
void paixu(struct student stu[]);
void nopass(struct student a[]);
void main()
{
struct student stu[4];
int i,a;
char c,d;
printf("输入学生信息:\n");
printf("学号 姓名 语文 数学 体育\n");
for(i=0;i<4;i++)
scanf("%d%s%f%f%f",&stu[i].nomber,stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].tiyu);
for(i=0;i<4;i++)
stu[i].sum=stu[i].yuwen+stu[i].shuxue+stu[i].tiyu;
printf("学号 姓名 语文 数学 体育 总分\n");
for(i=0;i<4;i++)
printf("%d %s %.1f %.1f %.1f %.1f\n",stu[i].nomber,stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].tiyu,stu[i].sum);
getchar();
do
{
printf("\n1 修改学生成绩\n2 总成绩排序\n3 显示成绩不及格学生\n4 退出\n");
c=getchar();
getchar();
switch(c)
{
case '1':
printf("修改学生成绩:\n");
printf("输入学号\n");
scanf("%d",&a);
getchar();
for(i=0;stu[i].nomber!=a;i++)
printf("输入信息\n");
scanf("%s%f%f%f",stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].tiyu);
break;
case '2':
printf("总成绩排序:\n");
printf("1 升序排列\n2 降序排列\n3 返回\n");
d=getchar();
getchar();
paixu(stu);
switch(d)
{
case '1': printf("升序排序:\n");
for(i=3;i>=0;i--)
printf("%f\n",stu[i].sum);
break;
case '2': printf("降序排序:\n");
for(i=0;i<4;i++)
printf("%f\n",stu[i].sum);
break;
default:printf("返回一级菜单\n");
}
break;
case'3':
printf(" 显示成绩不及格学生:\n");
nopass(stu);
break;
case'4':
exit(0);
default:
break;
}
}while(1);
}
void paixu(struct student stu[])
{
int j,i,t=0;
float f,max;
for(i=0;i<3;i++)
{
max=stu[i].sum;
for(j=i+1;j<4;j++)
if(stu[j].sum>max)
{
max=stu[j].sum;
t=j;
f=stu[i].sum;
stu[i].sum=max;
stu[t].sum=f;
}
}
}
void nopass(struct student stu[])
{
int i;
for(i=0;i<4;i++)
{
if(stu[i].yuwen<60||stu[i].shuxue<60||stu[i].tiyu<60)
printf("%d %s %.1f %.1f %.1f %.1f\n",stu[i].nomber,stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].tiyu,stu[i].sum);
}
}