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

#include<iostream>
using namespace std;
struct student
{
	string ID; //定义学号
	string name; //学生姓名
	float score1, score2, score3;//三个科目分数
};
int main()
{
	int i;
    struct student stu[10];//定义10个学生的结构体数组
	for (int i = 0; i < 10; i++)//循环输入学生信息
	{
		cout << "请输入第" << i+1 << "位学生学号:";
		cin >> stu[i].ID; 
		cout << "请输入第" << i+1 << "位学生姓名:";
		cin >> stu[i].name;
		cout << "请输入第" << i+1 << "位学生三门课成绩(用空格区分):";
		cin >> stu[i].score1 >> stu[i].score2 >> stu[i].score3;
	}
	for (int i = 0; i < 10; i++)//循环输出
	{
		cout <<"学号:" << stu[i].ID << endl;
		cout <<"姓名:" << stu[i].name << endl;
		cout << "各科成绩为:" << stu[i].score1 <<" " << stu[i].score2 <<" " << stu[i].score3 << endl;
		cout <<"平均成绩为" << (stu[i].score1 + stu[i].score2 + stu[i].score3) * 1.0 / 3.0 << endl;
	}
	int max = stu[0].score1 + stu[0].score2 + stu[0].score3;//定义一个最大值 便于后边进行循环的比较
	int num=1;
	for (i = 1; i < 10; i++)//求出平均成绩最高的学生
	{
		if (stu[i].score1 + stu[i].score2 + stu[i].score3 > max)
		{
			max = stu[i].score1 + stu[i].score2 + stu[i].score3;
			num++;//用于求出成绩最高学生的学号
		}
	}
	cout << "成绩最高的学生的数据:" << endl;
	cout << "学号:" << stu[num].ID << endl;
	cout << "姓名:" << stu[num].name << endl;
	cout << "各科成绩为:" << stu[num].score1 << " " << stu[num].score2 << " " << stu[num].score3 << endl;
	cout << "平均成绩为" << max/3.0 << endl;
	int sum1 = 0;
	int sum2 = 0;
	int sum3 = 0;
	for (i = 0; i < 10; i++)//求各科目的总平均成绩
	{
		sum1 += stu[i].score1;
		sum2 += stu[i].score2;
		sum3 += stu[i].score3;
	}
	cout << "科目一平均分为" << sum1 / 3.0<<endl;
	cout << "科目二平均分为" << sum2 / 3.0<<endl;
	cout << "科目三平均分为" << sum3 / 3.0<<endl;
	return 0;
}

新手上路,可能写的有很多缺点 请各位大佬执指正

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Art_Y

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

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

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

打赏作者

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

抵扣说明:

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

余额充值