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]}")