有十个学生,每个学生的数据包括学号,姓名,三门课程的成绩,从键盘输入十个学生的数据,要求输出三门课程总平均成绩,以及最高分的学生数据(包括学号,姓名,三门课程成绩,平均成绩)。

1.程序编写

#include
struct student
{
	int num;
	char name[20];
	float score[3];
}stu[10];
int ave(struct student stu[])
{
	float ave[3];
	float sum;
	for (int j = 0; j < 3; j++)
	{
		sum = 0;
		for (int i = 0; i < 10; i++)
		{
			sum += stu[i].score[j];
		}
		ave[j] = sum / 10;
	}
	for (int j = 0; j < 3; j++)
	{
		printf("第%d门课程的平均成绩为:%.3f\n",j+1, ave[j]);
	}
	puts("*****************************************************");
	return 0;
}
void find(struct student stu[])
{
	int i, j;
	float sum;
	float ave[10];
	for (i = 0; i < 10; i++)
	{
		sum = 0;
		for (j = 0; j < 3; j++)
		{
			sum += stu[i].score[j];
		}
		ave[i] = sum / 3;
	}
	for (i = 0; i < 10; i++)
	{
		printf("第%d个学生的平均分为:%.2f\n", i + 1, ave[i]);
	}
	int t = 0;
	int max = 0;
	for (i = 0; i < 10; i++)
	{
		if (ave[max] < ave[i])
		{
			max = i;
			t = i;
		}
	}
	printf("最高分的学生数据为:%d,%s,%.2f,%.2f,%.2f,%.2f", stu[t].num, stu[t].name, stu[t].score[0], stu[t].score[1], stu[t].score[2], ave[t]);
}
void main()
{
	printf("请输入十名学生的信息:\n");
	for (int i = 0; i < 10; i++)
	{
		scanf("%d", &stu[i].num);
		scanf("%s", stu[i].name);
		for (int j = 0; j < 3; j++)
		{
			scanf("%f", &stu[i].score[j]);
		}
	}
	puts("************************************");
	ave(stu);
	find(stu);
}

2.学生信息备份
//9001 叶凡 90 96 32
//9002 杨开 52 74 69
//9003 徐凤年 98 97 85
//9004 徐念凉 69 49 87
//9005 红薯 96 94 73
//9006 陈平安 64 62 68
//9007 石昊 96 76 90
//9008 陈如初 65 74 61
//9009 温华 63 12 42
//9010 诸禄山 63 35 64

3.结果显示
有十个学生,每个学生的数据包括学号,姓名,三门课程的成绩,从键盘输入十个学生的数据,要求输出三门课程总平均成绩,以及最高分的学生数据(包括学号,姓名,三门课程成绩,平均成绩)。_第1张图片

你可能感兴趣的:(有十个学生,每个学生的数据包括学号,姓名,三门课程的成绩,从键盘输入十个学生的数据,要求输出三门课程总平均成绩,以及最高分的学生数据(包括学号,姓名,三门课程成绩,平均成绩)。)