2966 - 【设计型】第12章:结构体和共同体 实验题 学生成绩管理系统(2)

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

某班有不超过30人(具体人数有键盘输入)参加期末考试,最多不会超过6门(具体门数由键盘输入)。参考例12.7,定义数据类型,用结构体数组做函数参数,编程实现:录入每个学生的学号、姓名、和各科考试成绩,计算每门课的总分和平均分。(要求用子函数解决)

题目输入

输入学生数n;

输入课程数m;

输入学生的学号、姓名、成绩;

题目输出

每一行输出一门课的总分和平均分。(中间有一个空格)

输入/输出样例

输入格式

2
3
20130143
李军
78
87
87
20130144
孙坚
97
97
97

输出格式

175 87.5
184 92.0
184 92.0

C语言解答

#include<stdio.h>
#define max_len 10
#define stu_num 30
#define course_num 6
typedef struct student 
{
	long num;
	char name[max_len];
	float score[course_num];	
}STU;
void ReadScore(STU stu[],int n,int m)
{
	int i,j;
	char ch;
	for(i=0;i<n;i++)
	{
		scanf("%ld",&stu[i].num);
		scanf("%s",stu[i].name);
		for(j=0;j<m;j++)
		{
			scanf("%f",&stu[i].score[j]);
		}
	}
}
void program (STU stu[],int n,int m) 
{
	int i,j;
	float sum[course_num],aver [course_num];
	for(j=0;j<m;j++)
	{
		sum[j]=0;
		for(i=0;i<n;i++)
		{
			sum[j]=sum[j]+stu[i].score[j];
		}
		aver[j]=sum[j]/n;
		printf("%.0f %.1f\n",sum[j],aver[j]);
	}
}
int main()
{
int n=0,m=0;
STU stu[stu_num];
scanf("%d",&n);
scanf("%d",&m);
ReadScore(stu,n,m);
program(stu,n,m);
return 0;
}