定义一个学生结构体并打印出学生信息(平均成绩、最高分)

/*定义一个Student结构体*/
typedef struct Student
{
	int num;       //学号
	char name[10]; //姓名
	float score[3];//三门课成绩
};

/*输入学生信息*/
void Input(Student *student,int n)
{
	printf("请输入学生信息:学号,姓名和三门课成绩\n");
	for (int i = 0; i < n; ++i)
	{
		printf("第%d个学生的信息:", i + 1);
		scanf("%d%s%f%f%f", &student[i].num, student[i].name, &student[i].score[0],
			&student[i].score[1], &student[i].score[2]);
	}
}

/*处理平均成绩*/
void Aver_score(const Student* student, int n)
{
	float sum1 = 0;//科目一的总成绩
	float sum2 = 0;//科目二的总成绩
	float sum3 = 0;//科目三的总成绩

	for (int i = 0; i < n; ++i)
	{
		sum1 += student[i].score[0];
		sum2 += student[i].score[1];
		sum3 += student[i].score[2];
	}
	printf("科目一的平均成绩:%5.1f\n科目二的平均成绩:%5.1f\n科目三的平均成绩:%5.1f\n", sum1 / n, sum2 / n, sum3 / n);
}

/*处理最高分*/
void Highest(const Student* student, int n)
{
	float highest = 0;//最高分学生的总成绩
	float tmp = 0;    //当前学生的总成绩
	int index = 0;    //最高分学生的下标

	for (int i = 0; i < n; ++i)
	{
		tmp = student[i].score[0] + student[i].score[1] + student[i].score[2];
		if (tmp > highest)
		{
			highest=tmp;
			index = i;
		}
	}

	printf("\n最高分学生的信息:学号:%d  姓名:% s  三门课成绩分别为: % 5.1f % 5.1f % 5.1f 总分:%5.1f\n",
		student[index].num,student[index].name, student[index].score[0], student[index].score[1],
		student[index].score[2], highest);
}

/*打印学生信息*/
void Printf(const Student *student,int n)
{
	for (int i = 0; i < n; ++i)
	{
		printf("学号:%d  姓名:%s  三门课成绩分别为:%5.1f  %5.1f  %5.1f\n",student[i].num,
			student[i].name, student[i].score[0], student[i].score[1], student[i].score[2]);
	}
}

int main()
{
	Student student [5];
	Input(student, sizeof(student)/sizeof(student[0]));
	printf("\n***************************************************************\n\n");

	Printf(student, sizeof(student) / sizeof(student[0]));
	printf("\n***************************************************************\n\n");

	Aver_score(student, sizeof(student) / sizeof(student[0]));
	Highest(student, sizeof(student) / sizeof(student[0]));

	return 0;
}

在这里插入图片描述

在C语言中,编写一个函数来计算20个学生平均成绩最高分和最低分,你可以这样做: ```c #include <stdio.h> // 定义结构体存储学生信息 typedef struct { int score; } Student; // 函数声明 double calculate_average(Student scores[], int n); int find_max_score(Student scores[], int n); int find_min_score(Student scores[], int n); void main() { // 假设scores[]数组已经初始化了,包含20个学生的分数 Student scores[20]; int i; // 计算平均成绩并打印 double avg = calculate_average(scores, 20); printf("平均成绩: %.2f\n", avg); // 找到最高分并打印 int max_score = find_max_score(scores, 20); printf("最高分: %d\n", max_score); // 找到最低分并打印 int min_score = find_min_score(scores, 20); printf("最低分: %d\n", min_score); } // 函数实现 double calculate_average(Student scores[], int n) { double sum = 0; for (i = 0; i < n; i++) { sum += scores[i].score; } return sum / n; } int find_max_score(Student scores[], int n) { int max = scores[0].score; for (i = 1; i < n; i++) { if (scores[i].score > max) { max = scores[i].score; } } return max; } int find_min_score(Student scores[], int n) { int min = scores[0].score; for (i = 1; i < n; i++) { if (scores[i].score < min) { min = scores[i].score; } } return min; } ``` 这个程序首先定义一个`Student`结构体存储每个学生的分数,然后定义三个函数:`calculate_average`用于计算平均值,`find_max_score`找到最高分,`find_min_score`找到最低分。在主函数里,先初始化学生分数数组,然后分别调用这三种方法并打印结果。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Serendipity---小ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值