4.7 学生管理系统 题号:110

编写学生管理系统,其中学生的信息有姓名(汉语拼音,最多20个字符),性别(男/女,用1表示男,2表示女)、
生日(19850101(年月日))、身高(以m为单位),还需要处理C语言、微积分两门课的成绩,请编写程序实现功能:
输入学生的人数和每个学生的信息;输出每门课程的总平均成绩、最高分和最低分,以及获得最高分的学生的信息。
需要注意的是某门课程最高分的学生可能不只一人。
输入输出格式要求:
	身高输出时保留两位小数,请按照例子中进行输出,请勿输出其他字符
例如:
输入:3 zhangsan 1 19910101 1.85 85 90 lisi 1 19920202 1.56 89 88 wangwu 2 19910303 1.6 89 90回车
输出:
C_average:87回车
C_max:89回车
lisi 1 19920202 1.56 89 88回车
wangwu 2 19910303 1.60 89 90回车
C_min:85回车
Calculus_average:89回车
Calculus_max:90回车
zhangsan 1 19910101 1.85 85 90回车
wangwu 2 19910303 1.60 89 90回车
Calculus_min:88回车
#include<stdio.h>
struct stu{
	char name[20];
	int gender;
	int birth;
	float height;
	float C;
	float Calculus;
};
int main() {
	struct stu a[10];
	int i,n,t=0,C_sum=0, C_max,C_min,Calculus_sum=0,Calculus_min, Calculus_max;
	float C_average, Calculus_average;
	scanf("%d", &n);
	for (i = 0;i < n;i++) {
		scanf("%s %d %d %f %f %f", &a[i].name, &a[i].gender, &a[i].birth, &a[i].height, &a[i].C, &a[i].Calculus);
	}
	//求C成绩最大值、最小值
	C_min = a[0].C;
	C_max = a[0].C;
	for (i = 0;i < n-1;i++) {
		if (C_max <= a[i + 1].C)
			C_max = a[i+1].C;
		if (C_min >= a[i + 1].C)
			C_min = a[i + 1].C;
		else continue;
	}
	//求Calculus成绩最大值、最小值
	Calculus_min = a[0].Calculus;
	Calculus_max = a[0].Calculus;
	for (i = 0;i < n - 1;i++) {
		if (Calculus_max <= a[i + 1].Calculus)
			Calculus_max = a[i + 1].Calculus;
		if (Calculus_min >= a[i + 1].Calculus)
			Calculus_min = a[i + 1].Calculus;
		else continue;
	}
	//求C成绩平均值
	for (i = 0;i < n;i++) {
		C_sum += a[i].C;
	}
	C_average = C_sum / n;
	//求Calculus成绩平均值
	for (i = 0;i < n;i++) {
		Calculus_sum += a[i].Calculus;
	}
	Calculus_average = Calculus_sum / n;
	//输出数据
	printf("C_average:%.0f\nC_max:%d\n", C_average,C_max);
	//C最高分学生信息
	for (i = 0;i < n;i++) {
		if (a[i].C == C_max) {
			printf("%s %d %d %.2f %.0f %.0f\n",a[i].name,a[i].gender,a[i].birth,a[i].height,a[i].C,a[i].Calculus);
		}
	}
	printf("C_min:%d\n", C_min);
	printf("Calculus_average:%.0f\nCalculus_max:%d\n", Calculus_average, Calculus_max);
	//Calculus最高分学生信息
	for (i = 0;i < n;i++) {
		if (a[i].Calculus == Calculus_max) {
			printf("%s %d %d %.2f %.0f %.0f\n", a[i].name, a[i].gender, a[i].birth, a[i].height, a[i].C, a[i].Calculus);
		}
	}
	printf("Calculus_min:%d\n", Calculus_min);
	return 0;
}

 码图4.7学生管理系统

结构体的简单应用,建议写注释

上一篇:The sequence 2 攻略 (第110-121关)


下一篇:1-10(图像特征与描述,行列式P1,leetcode108,110)