c语言实验,求解

1.用数组结构存放10个学生各门课的成绩(假设有3门课的成绩)。
2.调用子函数求每个学生的总分。
3.调用子函数统计每门课的最高分、最低分。
4.调用子函数求每门课的平均成绩和每个学生的平均成绩。

第1个回答  2014-05-03
#include "stdio.h"
typedef struct Student
{
int ChineseScore;//语文成绩
int MathScore; //数学成绩
int EnglishScore; //英语成绩
}student[10];

void SumScore(Student student[]) //求每个学生的总分
{
int i;
for(i=0;i<10;i++)
{
int sum=0;
sum=student[i].ChineseScore+student[i].MathScore+student[i].EnglishScore;
printf("第%d个学生的总成绩为:%d\n",i+1,sum);
}
}
void MaxAndMinScore(Student student[]) //求每门课程最低和最高分数
{
int i;
int max,min;
max=min=student[0].ChineseScore;
for(i=0;i<10;i++)
{
if(max<student[i].ChineseScore)
{
max=student[i].ChineseScore;
}
if(min>student[i].ChineseScore)
{
min=student[i].ChineseScore;
}
}
printf("语文成绩中最高分数为:%d,最低分数为:%d\n",max,min);
max=min=student[0].MathScore;
for(i=0;i<10;i++)
{
if(max<student[i].MathScore)
{
max=student[i].MathScore;
}
if(min>student[i].MathScore)
{
min=student[i].MathScore;
}
}
printf("数学成绩中最高分数为:%d,最低分数为:%d\n",max,min);
max=min=student[0].EnglishScore;
for(i=0;i<10;i++)
{
if(max<student[i].EnglishScore)
{
max=student[i].EnglishScore;
}
if(min>student[i].EnglishScore)
{
min=student[i].EnglishScore;
}
}
printf("英语成绩中最高分数为:%d,最低分数为:%d\n",max,min);
}
void StuAverScore(Student student[]) //求每个学生的平均成绩
{
int i;
int sum;
float aver;
for(i=0;i<10;i++)
{
sum=0;
aver=0;
sum=student[i].ChineseScore+student[i].MathScore+student[i].EnglishScore;
aver=sum/3.0;
printf("第%d个学生的平均成绩为:%.1f\n",i+1,aver);
}
}
void CourAverScore(Student student[]) //求每门课程的平均成绩
{
int i;
int sum=0;
float aver=0.0;
for(i=0;i<10;i++)
{
sum+=student[i].ChineseScore;
}
aver=sum/10.0;
printf("语文平均成绩为:%.1f\n",aver);
sum=0;
aver=0;
for(i=0;i<10;i++)
{
sum+=student[i].MathScore;
}
aver=sum/10.0;
printf("数学平均成绩为:%.1f\n",aver);
sum=0;
aver=0;
for(i=0;i<10;i++)
{
sum+=student[i].EnglishScore;
}
aver=sum/10.0;
printf("英语平均成绩为:%.1f\n",aver);
}
void insert(Student student[]) //录入10个学生的成绩
{
int i;
for(i=0;i<10;i++)
{
printf("请输入第%d个学生语文成绩:",i+1);
scanf("%d",&student[i].ChineseScore);
printf("请输入第%d个学生数学成绩:",i+1);
scanf("%d",&student[i].MathScore);
printf("请输入第%d个学生英语成绩:",i+1);
scanf("%d",&student[i].EnglishScore);
}
}
void main()
{
/*Student student[10]={{90,98,76},{56,85,98},{23,56,78},{67,87,59},{90,90,90},
{87,65,45},{76,67,89},{56,90,98},{67,69,80},{78,90,93}};*/ //可以直接初始化
Student student[10];
insert(student);
SumScore(student);
MaxAndMinScore(student);
StuAverScore(student);
CourAverScore(student);
}
希望你看的明白,不明白的地方可以联系我。本回答被提问者采纳
第2个回答  2014-05-03
同学,这种题目是很基础的, 你自己需要学会解答;
我给你理一个思路吧:

第一、先准备数据;
struct student{
char yuwen; //语文
char shuxue; //数学

char yingyu; //英语

}; //这是一个学生三门课程的成绩,定义数据结构: student
struct student class_1[10]; //定义数组class_1用于存储10位学生的成绩

第二、再调用函数运算;
//函数计算部分就是对上面的数据运算了,它主要看你C语言学得咋样了。。 自己写吧
相似回答