【编程题】输入10个学生5门课的成绩,用函数实现以下功能

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int i, j,a,b;
float high;
float score[10][5];
float a_stu[10];
float a_cour[5];

int main()
{
	void input_stu();
	void aver_stu();
	void aver_cour();
	float highest();

	input_stu();				//直接调用函数,输入10个学生的各科成绩
	aver_stu();				//直接调用函数,计算10个学生自己的平均成绩
	printf("\nAverage score of every student :");
	for (i = 0; i < 10; i++)
		printf("%8.2f", a_stu[i]);				//输出10个学生自己的平均成绩
	aver_cour();
	printf("\nAverage score of every course :");
	for (j = 0; j < 5; j++)
		printf("%8.2f", a_cour[j]);					//输出5门课程各个的平均成绩
	float high = highest();						//函数算出50门课中最高分,返回值赋值
	printf("\nThe highest score :%8.2f\tNo.%d student\tcourse%d\n", high, a + 1, b + 1);					//输出50门课中最高分,对应学生与课程号
}


void input_stu()					//输入10个学生的各科成绩
{
	for (i = 0; i < 10; i++)
	{
		printf("\nInput No.%d student's score :\n", i + 1);
		for (j = 0; j < 5; j++)
			scanf("%f", &score[i][j]);
	}
}

void aver_stu()						//计算10个学生自己的平均成绩
{
	float sum;
	for(i = 0; i < 10; i++)
	{ 
		for (j = 0,sum=0; j < 5; j++)
			sum += score[i][j];
		a_stu[i] = sum / 5.00;
	}
}

void aver_cour()					//输出5门课程各个的平均成绩
{
	float sum;
	for (j = 0; j < 5; j++)
	{
		sum = 0;
		for (i = 0; i < 10; i++)
			sum += score[i][j];
		a_cour[j] = sum/10.00;
	}
}

float highest()						//算出50门课中最高分,并返回
{
	float most = score[0][0];
	for(i = 0; i < 10; i++)
		for (j = 0; j < 5; j++)
			if (score[i][j] > most)
			{
				most = score[i][j];
				a = i;
				b = j;
			}
	return(most);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一份结构体解答的代码: ```c #include <stdio.h> // 定义学生结构体 struct Student { int id; char name[20]; float score1; float score2; float score3; float avg_score; }; int main() { // 定义5个学生结构体变量 struct Student students[5]; // 从键盘输入每个学生的数据 for (int i = 0; i < 5; i++) { printf("请输入第%d个学生的学号、姓名、三门课成绩:\n", i+1); scanf("%d %s %f %f %f", &students[i].id, students[i].name, &students[i].score1, &students[i].score2, &students[i].score3); // 计算平均分数 students[i].avg_score = (students[i].score1 + students[i].score2 + students[i].score3) / 3.0; } // 计算3门课程总平均成绩 float total_score = 0.0; for (int i = 0; i < 5; i++) { total_score += students[i].score1 + students[i].score2 + students[i].score3; } float avg_total_score = total_score / 15.0; printf("3门课程总平均成绩为:%.2f\n", avg_total_score); // 找到最高分的学生 int max_index = 0; float max_score = students[0].avg_score; for (int i = 1; i < 5; i++) { if (students[i].avg_score > max_score) { max_index = i; max_score = students[i].avg_score; } } // 输出最高分的学生的数据 printf("最高分的学生是:\n"); printf("学号:%d\n", students[max_index].id); printf("姓名:%s\n", students[max_index].name); printf("三门课成绩:%.2f %.2f %.2f\n", students[max_index].score1, students[max_index].score2, students[max_index].score3); printf("平均分数:%.2f\n", students[max_index].avg_score); return 0; } ``` 这份代码定义了一个`Student`结构体,包含学号、姓名、三门课成绩和平均分数。在`main`函数中,定义了5个`Student`结构体变量,通过循环从键盘输入每个学生的数据,并计算平均分数。然后,计算3门课程总平均成绩,找到最高分的学生并输出其数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值