2022.4.3 15:00 洛谷P5740

C:(100分)

#define _CRT_SECURE_NO_WARNINGS 0

#include <stdio.h>

struct xuesheng  //创建一个结构体,这个结构体的变量名为 xuesheng 
{
	char name[20] = {};  //这个数组的大小要看题目“不超过 8 个字符”,故大于 8

	int yuwen = 0;  //记录 语文 的分数

	int shuxue = 0;  //记录 数学 的分数

	int yingyu = 0;  //记录 英语 的分数

	int zongfen = 0;  //记录 总分

}xuesheng[1010];  //相当于搞了一个叫 xuesheng 的数组,里面有1010个元素,每个元素都是 xuesheng(结构体名)


int main()
{
	int n = 0;  //用于储存 学生的个数

	int max = 0;  //用于记录当前算出过的 最大的总分

	int max_index = 1;  //用于记录 算出过的最大的总分 所在数组位置的 下标

	scanf("%d", &n);

	for (int i = 1; i <= n; i++)
	{
		scanf("%s", &xuesheng[i].name);  //读取姓名

		scanf("%d", &xuesheng[i].yuwen);  //读取语文成绩

		scanf("%d", &xuesheng[i].shuxue);  //读取数学成绩

		scanf("%d", &xuesheng[i].yingyu);  //读取英语成绩

		xuesheng[i].zongfen = xuesheng[i].yuwen + xuesheng[i].yingyu + xuesheng[i].shuxue;  //计算总分

		if (xuesheng[i].zongfen > max)  //判断 该学生的总分 是否超过 记录的最大的总分
		{
			max = xuesheng[i].zongfen;  //更改 最大总分

			max_index = i;  //记录 该学生的下标
		}
	}

	printf("%s %d %d %d", xuesheng[max_index].name, xuesheng[max_index].yuwen, xuesheng[max_index].shuxue, xuesheng[max_index].yingyu);

	return 0;
}

C++:(100分)

C++的话我的想法是与C差不多的

但把结构体换成了类

也算是回顾了一下类方面的知识了吧

也是回顾了才知道,我连构造函数都忘记怎么写了

#define _CRT_SECURE_NO_WARNINGS 0

#include <iostream>

#include <string>

using namespace std;


class student
{
public:
	string name;

	int yuwen = 0;

	int shuxue = 0;

	int yingyu = 0;

	int zongfen = 0;

}student[1020];


int main()
{
	int n = 0;

	int max = 0;

	int max_index = 1;

	cin >> n;

	for (int i = 1; i <= n; i++)
	{
		cin >> student[i].name >> student[i].yuwen >> student[i].shuxue >> student[i].yingyu;

		student[i].zongfen = student[i].yuwen + student[i].yingyu + student[i].shuxue;

		if (student[i].zongfen > max)
		{
			max = student[i].zongfen;

			max_index = i;
		}
	}

	cout << student[max_index].name << ' ' << student[max_index].yuwen << ' ' << student[max_index].shuxue << ' ' << student[max_index].yingyu;

	return 0;
}

python:(100分)

思路比C简单一点

就是不需要记录所用学生的信息再比较

永远只记录一个总分最高的

如果 新输入的学生的总分 比 记录的 搞

就把这个记录更新

最后输入打印记录的学生信息就好了


n = int(input())  # 用于 储存 要录入信息的学生个数

b = ["name", "0", "0", "0"]  # 用于储存 总分最高 的学生的信息

for i in range(n):
    c = input("").split(" ")  # 新输入的学生信息,最后C为一个列表

    if i == 0:  # 用于解决 提交后 测试点一 WA 的特殊情况
        b[0] = c[0]

    if int(c[1]) + int(c[2]) + int(c[3]) > int(b[1]) + int(b[2]) + int(b[3]):  # 总分比较
        for j in range(0, 4):
            b[j] = c[j]

print(f"{b[0]} {b[1]} {b[2]} {b[3]}")


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值