大神帮我改一下这个程序。。。先谢过
有二十个学生 每个学生有6门课成绩(数学 语文 英语 化学 物理 生物) 从键盘上输入以上数据(包括学号 姓名 6门课成绩) 计算出每个人的总成绩 各科平均成绩 并按成绩排名。#include<stdio.h>
struct student
{
int num;
char name[10];
float math,yuwen,english,huaxue,physic,shengw;
float sum1,average;
}stu[20];
void main()
{
void sort(float*p);
struct student*p1=stu;
int i;
float sum,aver;
for(i=0;i<20;i++)
{
printf("学号:");
scanf("%d",&p1->num);
printf("姓名:");
scanf("%s",p1->name);
printf("各门成绩:");
scanf("%f %f %f %f %f %f",&p1->math,&p1->yuwen,&p1->english,&p1->huaxue,&p1->physic,&p1->shengw);
}
for(p1=stu;p1<stu+20;p1++)
{
sum=p1->math+p1->yuwen+p1->english+p1->huaxue+p1->physic+p1->shengw;
printf("总分:%f",sum);
aver=sum/6;
printf("平均分:%f",aver);
sum=0;
}
for(i=0;i<20;i++)
sort(p1->sum1);
for(i=0;i<20;i++)
printf("%d %s %f %f %f %f %f %f",p1->num,p1->name,p1->math,p1->yuwen,p1->english,p1->huaxue,p1->physic,p1->shengw);
}
void sort(struct student*p)
{
int i,j;
float swap;
for(i=0;i<19;i++)
for(j=i+1;j<20;j++)
if(p[i]<p[j])
{
swap=p[i];
p[i]=p[j];
p[j]=swap;
}
}
大神帮我改一下,谢谢啦,分不多,见谅,先谢过!