定义一个学生结构体,包含学号,姓名和三科成绩。定义一个函数实现每科的平均分并输出,再定义一个函数求出总分最高分的学生并输出该生信息。

//根据上题,定义一个函数实现每科的平均分并输出,再定义一个函数求出总分最高分的学生并输出该生信息
typedef struct Student
{
	int num;//学号
	char name[20];//姓名
	double score[3];//三科成绩
}; Student;
 
//键盘读入函数
void Input(Student* arr, int len)
{
	printf("请输入%d个学生信息:学号 姓名 成绩1 成绩2 成绩3\n", len);
	//printf("学号 姓名 成绩1 成绩2 成绩3\n");
	for (int i = 0; i < len; i++)//i个学生
	{
		scanf("%d%s%lf%lf%lf", &arr[i].num, &arr[i].name,
			&arr[i].score[0], &arr[i].score[1], &arr[i].score[2]);
		//for (int j = 0; j < 3; j++)//j科成绩
		//{
		//	scanf("%lf", &arr[i].score[j]);
		//}
	}
}

//输出函数
void Show(const Student* arr, int len)
{
	printf("所有学生的信息分别为:\n");//不能放到循环里面
	for (int i = 0; i < len; i++)
	{
		printf("学号:%d,姓名:%s,成绩1:%lf,成绩2:%lf,成绩3:%lf\n",
			arr[i].num, arr[i].name,
			arr[i].score[0], arr[i].score[1], arr[i].score[2]);
	}
}

//处理平均成绩和最高分
void AvgScore(const Student* arr, int len)
{
	//平均成绩
	double sum1 = 0, sum2 = 0, sum3 = 0;//分别定义3科成绩的总分数
	for (int i = 0; i < len; i++)
	{
		sum1 += arr[i].score[0];
		sum2+= arr[i].score[1];
		sum3 += arr[i].score[2];
	}
	printf("科1的平均成绩为:%lf\n", sum1 / len);
	printf("科2的平均成绩为:%lf\n", sum2 / len);
	printf("科3的平均成绩为:%lf\n", sum3 / len);
}

void MaxScore(const Student* arr, int len)
{
	//找最高分
	double max = 0;//最高分学生的成绩
	int j = 0;//最高分学生的下标
	double tmp = 0;//当前学生的总成绩
	for (int i = 0; i < len; i++)
	{
		tmp = arr[i].score[0] + arr[i].score[1] + arr[i].score[2];
		if (tmp > max)
		{
			max = tmp;//当前分数赋值给最高分
			j = i;//当前人的下标给最高分下标,则arr[j]就是最高分的人
		}
	}
	printf("最高分的学生信息为:学号:%d,姓名:%s,成绩1:%lf,成绩2:%lf,成绩3:%lf,总成绩:%lf\n",
		arr[j].num, arr[j].name,
		arr[j].score[0], arr[j].score[1], arr[j].score[2], max);
}

int main()
{
	Student arr[2];
	Input(arr, sizeof(arr) / sizeof(arr[0]));
	printf("-----------------------------\n");
	Show(arr, sizeof(arr) / sizeof(arr[0]));
	printf("-----------------------------\n");
	AvgScore(arr, sizeof(arr) / sizeof(arr[0]));
	printf("-----------------------------\n");
	MaxScore(arr, sizeof(arr) / sizeof(arr[0]));
	return 0;

}

定义一个学生结构体,包含学号,姓名和三科成绩。定义一个函数实现每科的平均分并输出,再定义一个函数求出总分最高分的学生并输出该生信息。_第1张图片

你可能感兴趣的:(c++,算法,开发语言)