作业帮 > 综合 > 作业

C语言题:输入三个人,三科成绩,建立成绩管理系统,用数组,要求个人三科平均分和每科平均分

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/30 06:36:33
C语言题:输入三个人,三科成绩,建立成绩管理系统,用数组,要求个人三科平均分和每科平均分
形式:
name num age sex English math chinese mean value
wang li 50201 19 m 78 78 78 78
C语言题:输入三个人,三科成绩,建立成绩管理系统,用数组,要求个人三科平均分和每科平均分
struct student
{
\x05int num; // 存放学号,必须唯一
\x05char name[8]; //存放姓名
\x05int age; //存放年龄.
\x05int sex; //存放性别.0,1
int math; //存放数学成绩
int chinese;// 存放语文成绩
int english;// 存放英语成绩
float ave;// 存放平均成绩
}student[3];
void input(struct student *p,int n);//录入学生成绩
void print(struct student *p,int n);//输出学生成绩子函数
void average(struct student *p,int n);//求平均成绩
void avepercourse(struct student *p,int n); //求每科的平均成绩.
#include
#include
#include
#include
int main()
{
\x05struct student *p;
\x05p=student;
\x05input(p,3);
average(p,3);
\x05print(p,3);
printf("the average of per cource is:\n");
avepercourse(p,3);
getchar();
return 0;
}
void input(struct student *p,int n)
{
\x05int i;
\x05printf("input the information\n");
printf("name num age sex(0|1) english math chinese\n");
\x05for(i=0;iname,&(p+i)->num,&(p+i)->age,&(p+i)->sex,&(p+i)->english,&(p+i)->math,&(p+i)->chinese); //这里将name前的&去掉.
}
void print(struct student *p,int n)
{
\x05int i;
\x05printf("name num age sex english math chinese meanave\n");
\x05for(i=0;iname,(p+i)->num,(p+i)->age,(p+i)->sex,(p+i)->english,(p+i)->math,(p+i)->chinese,(p+i)->ave); //这里缺少d了.
\x05}
}
void average(struct student *p,int n) //修改一下.
{
\x05int sum,i;
\x05for(i=0;imath+(p+i)->chinese+(p+i)->english;
\x05\x05(p+i)->ave = sum/3.0;
\x05}
}
void avepercourse(struct student *p,int n)
{
int i;
int sum=0;
for(i =0;ienglish;
}
printf("english ave = %f\n",sum/3.0);
sum = 0;
for(i =0;imath;
}
printf("math ave = %f\n",sum/3.0);
sum =0;
for(i =0;ichinese;
}
printf("chinese ave = %f\n",sum/3.0);
}
再问: 不要用指针,用二维数组做可以吗?简单点就行,麻烦你了
再答: 二维数组不可以,因为这里的类型是不相同的。
再问: 那用结构体数组呢?它是要求以表格的形式打出,指针我现在还不太会,希望你能用结构体数组编一个,非常感谢~
再答: 现在用的就是结构体数组啊,只是在传递参数时用的指针。
再问: void average(struct student *p,int n) 这里在编译时,说有语法错误?
再答: 什么错误你贴出来 这个程序我已经运行过了