合肥105医院电话多少:c语言问题~这程序应该怎么改??究竟哪里不对拉~
来源:百度文库 编辑:神马品牌网 时间:2024/09/21 09:04:59
#include <stdio.h>
#include <stdlib.h>
struct Student
{
int id;//学号
char name[12];//姓名
double score[3];//三门课成绩
double average;//三门课的平均分
};
Student stu[30];
int compare(const void *a,const void *b)
{
Student *pa=(Student *)a;
Student *pb=(Student *)b;
if(pa->average>pb->average)
return 1;
else
if(pa->average<pb->average)
return -1;
else
return 0;
}
int main()
{
double avr[3]={0,0,0};
int i,j;
for(i=0;i<30;i++)
{
printf("学生%d\n",i);
printf("学号:");
scanf("%d",&(stu[i].id));
printf("姓名:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
printf("学科%d成绩:",j);
scanf("%f",&(stu[i].score[j]));
stu[i].average+=stu[i].score[j];//统计该生平均分
avr[j]+=stu[i].score[j];//统计该科平均分
}
stu[i].average/=3;
}
for(i=0;i<3;i++)
{
avr[i]/=3;
printf("学科%d的平均分是:%f\n",i,avr[i]);
}
//排序
qsort(stu,30,sizeof(Student),compare);
//打印结果
printf("学号,姓名,学科1,学科2,学科2,平均分");
for(i=0;i<30;i++)
{
printf("%d,%s,",stu[i].id,stu[i].name);
for(j=0;j<3;j++)
{
printf("%f,",stu[i].score[j]);
}
printf("%f\n",stu[i].average);
}
}
scanf("%s",stu[i].name);
stu[i].average=0;//*****要初始化平均值*******
for(j=0;j<3;j++)
{
printf("学科%d成绩:",j);
scanf("%lf",&(stu[i].score[j])); //**double变量要用%lf格式*******
stu[i].average+=stu[i].score[j];//统计该生平均分
所有printf中的*double变量最好也用%lf格式。
最后main函数要有返回值,消除一个警告信息。
return 0;
#include <stdio.h>
#include <stdlib.h>
struct Student
{
int id;//学号
char name[12];//姓名
double score[3];//三门课成绩
double average;//三门课的平均分
};
Student stu[30];
int compare(const void *a,const void *b)
{
Student *pa=(Student *)a;
Student *pb=(Student *)b;
if(pa->average>pb->average)
return 1;
else
if(pa->average<pb->average)
return -1;
else
return 0;
}
int main()
{
double avr[3]={0,0,0};
int i,j;
for(i=0;i<30;i++)
{
printf("学生%d\n",i);
printf("学号:");
scanf("%d",&(stu[i].id));
printf("姓名:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
printf("学科%d成绩:",j);
scanf("%f",&(stu[i].score[j]));
stu[i].average+=stu[i].score[j];//统计该生平均分
avr[j]+=stu[i].score[j];//统计该科平均分
}
stu[i].average/=3;
}
for(i=0;i<3;i++)
{
avr[i]/=3;
printf("学科%d的平均分是:%f\n",i,avr[i]);
}
//排序
qsort(stu,30,sizeof(Student),compare);
//打印结果
printf("学号,姓名,学科1,学科2,学科2,平均分");
for(i=0;i<30;i++)
{
printf("%d,%s,",stu[i].id,stu[i].name);
for(j=0;j<3;j++)
{
printf("%f,",stu[i].score[j]);
}
printf("%f\n",stu[i].average);
}
}
这样该了以后就可以通过编译拉。