满意答案
ncug0618
推荐于 2018.04.19
采纳率:46% 等级:10
已帮助:566人
#include
#include
/**c语言帮忙改错!输入n个学生的成绩信息,按照每个学生的个人平均成绩从高到低输出他们的信息*/
struct student
{
int num;
char name[10];
float score[3];
double average;
};
int main()
{
int i,j,n,index;
struct student m; //m应定义为相同结构体类型才能替换
struct student s[50];
printf("Input n=");
scanf("%d",&n);
for(i=0; i
{
printf("num:");
scanf("%d",&s[i].num);
printf("name:");
scanf("%s",s[i].name);
for(j=0; j<3; j++)
{
printf("第%d门score:",j+1);
scanf("%f",&s[i].score[j]); //i变为j,忘了加&
}
s[i].average=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0; //这里有错误
}
for(i=0; i
{
index=i;
for(j=i+1; j
{
if(s[i].average < s[j].average) //这里应该比较平均分
{
index=j;
}
}
m=s[i]; //这里是i
s[i]=s[index];
s[index]=m;
}
printf("num\t name\t average\n");
for(i=0; i
printf("%d\t%s\t%.2f\n",s[i].num,s[i].name,s[i].average); //这里多了分号
return 0;
}
00分享举报