
C语言问题 很急 大家帮忙吧 谢谢啦 帮我找找哪有错误啊???
#include<stdio.h>#include<stdlib.h>#defineSTU_NUM10structstudent{charstu_id[20];float...
#include <stdio.h>
#include <stdlib.h>
#define STU_NUM 10
struct student
{
char stu_id[20];
float score[3];
float total;
float aver;
};
void SortScore(student *stu,int n)
{
student stud;
for(int i = 0; i < n-1; i++)
for(int j = i+1 ; j < n; j++)
{
if(stu[i].total < stu[j].total)
{
stud = stu[i];
stu[i] = stu[j];
stu[j] = stud;
}
}
}
int main( )
{
student stu[STU_NUM];
for(int i = 0; i<STU_NUM; i++)
{
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",&stu[i].stu_id);
printf("输入第%d个学生的数学成绩:",i+1);
scanf("%f",&stu[i].score[0]);
printf("输入第%d个学生的英语成绩:",i+1);
scanf("%f",&stu[i].score[1]);
printf("输入第%d个学生的计算机成绩:",i+1);
scanf("%f",&stu[i].score[2]);
stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].aver = stu[i].total/3;
}
printf("\n");
SortScore(stu,STU_NUM);
for(i = 0 ; i < STU_NUM; i++)
{
printf("序号: %d\t",i);
printf("学号:%s\t",stu[i].stu_id);
printf("数学:%f\t",stu[i].score[0]);
printf("英语:%f\t",stu[i].score[1]);
printf("计算机:%f\t",stu[i].score[2]);
printf("平均成绩:%f\t",stu[i].aver);
printf("总分:%f\t",stu[i].total);
printf("\n\n");
}
return 0;
}
#define STU_NUM 10
struct student
{
char stu_id[20];
float score[3];
float total;
float aver;
}
麻烦 给我发个完整的 我不会弄 谢谢啦 展开
#include <stdlib.h>
#define STU_NUM 10
struct student
{
char stu_id[20];
float score[3];
float total;
float aver;
};
void SortScore(student *stu,int n)
{
student stud;
for(int i = 0; i < n-1; i++)
for(int j = i+1 ; j < n; j++)
{
if(stu[i].total < stu[j].total)
{
stud = stu[i];
stu[i] = stu[j];
stu[j] = stud;
}
}
}
int main( )
{
student stu[STU_NUM];
for(int i = 0; i<STU_NUM; i++)
{
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",&stu[i].stu_id);
printf("输入第%d个学生的数学成绩:",i+1);
scanf("%f",&stu[i].score[0]);
printf("输入第%d个学生的英语成绩:",i+1);
scanf("%f",&stu[i].score[1]);
printf("输入第%d个学生的计算机成绩:",i+1);
scanf("%f",&stu[i].score[2]);
stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].aver = stu[i].total/3;
}
printf("\n");
SortScore(stu,STU_NUM);
for(i = 0 ; i < STU_NUM; i++)
{
printf("序号: %d\t",i);
printf("学号:%s\t",stu[i].stu_id);
printf("数学:%f\t",stu[i].score[0]);
printf("英语:%f\t",stu[i].score[1]);
printf("计算机:%f\t",stu[i].score[2]);
printf("平均成绩:%f\t",stu[i].aver);
printf("总分:%f\t",stu[i].total);
printf("\n\n");
}
return 0;
}
#define STU_NUM 10
struct student
{
char stu_id[20];
float score[3];
float total;
float aver;
}
麻烦 给我发个完整的 我不会弄 谢谢啦 展开
展开全部
你用的是C++编译器吗?程序名是.cpp的扩展名吗?
最后的代码是不是粘多了?
以上如果确认是,则:
for(int i = 0; i<STU_NUM; i++)
{
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",stu[i].stu_id); //这里的&应该去掉,因为stu_id本身就是char *地址
for(int i = 0 ; i < STU_NUM; i++) //这里少了i变量的声明,加上int就编译通过了。
{
printf("序号: %d\t",i);
printf("学号:%s\t",stu[i].stu_id);
printf("数学:%f\t",stu[i].score[0]);
printf("英语:%f\t",stu[i].score[1]);
printf("计算机:%f\t",stu[i].score[2]);
printf("平均成绩:%f\t",stu[i].aver);
printf("总分:%f\t",stu[i].total);
printf("\n\n");
}
最后的代码是不是粘多了?
以上如果确认是,则:
for(int i = 0; i<STU_NUM; i++)
{
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",stu[i].stu_id); //这里的&应该去掉,因为stu_id本身就是char *地址
for(int i = 0 ; i < STU_NUM; i++) //这里少了i变量的声明,加上int就编译通过了。
{
printf("序号: %d\t",i);
printf("学号:%s\t",stu[i].stu_id);
printf("数学:%f\t",stu[i].score[0]);
printf("英语:%f\t",stu[i].score[1]);
printf("计算机:%f\t",stu[i].score[2]);
printf("平均成绩:%f\t",stu[i].aver);
printf("总分:%f\t",stu[i].total);
printf("\n\n");
}
更多追问追答
追问
还是不行啊 还是运行不了
追答
#include
#include
#define STU_NUM 3
struct student
{
char stu_id[20];
float score[3];
float total;
float aver;
};
void SortScore(student *stu,int n)
{
student stud;
for(int i = 0; i < n-1; i++)
for(int j = i+1 ; j < n; j++)
{
if(stu[i].total < stu[j].total)
{
stud = stu[i];
stu[i] = stu[j];
stu[j] = stud;
}
}
}
int main( )
{
student stu[STU_NUM];
for(int i = 0; i<STU_NUM; i++)
{
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",stu[i].stu_id); //WARN
printf("输入第%d个学生的数学成绩:",i+1);
scanf("%f",&stu[i].score[0]);
printf("输入第%d个学生的英语成绩:",i+1);
scanf("%f",&stu[i].score[1]);
printf("输入第%d个学生的计算机成绩:",i+1);
scanf("%f",&stu[i].score[2]);
stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].aver = stu[i].total/3;
}
printf("\n");
SortScore(stu,STU_NUM);
for(int i = 0 ; i < STU_NUM; i++)
{
printf("序号: %d ",i);
printf("学号:%s ",stu[i].stu_id);
printf("数学:%.2f ",stu[i].score[0]);
printf("英语:%.2f ",stu[i].score[1]);
printf("计算机:%.2f ",stu[i].score[2]);
printf("平均成绩:%.2f ",stu[i].aver);
printf("总分:%.2f ",stu[i].total);
printf("\n\n");
}
return 0;
}
展开全部
int main( )
{
student stu[STU_NUM];
==>
struct student stu[STU_NUM];
{
student stu[STU_NUM];
==>
struct student stu[STU_NUM];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你定义的结构体数组就有问题,应该是struct student stu[STU_NUM];
追问
哪里??我改了 不行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询