社区讨论

为啥子错了

P5740【深基7.例9】最厉害的学生参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mhkdy55k
此快照首次捕获于
2025/11/04 17:47
4 个月前
此快照最后确认于
2025/11/04 17:47
4 个月前
查看原帖
直接上代码:
CPP
#include<bits/stdc++.h>

using namespace std;

struct Student
{
	string name;
	int chinesePoint;
	int mathsPoint;
	int englishPoint;
};

template <class T>

void Temp(T& a, T& b)
{
	T temp = a;
	a = b;
	b = temp;
}

void SortStudent(vector<Student*>& arr)
{
	int n = arr.size();
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n - i - 1; j++)
		{
			int a = arr[j]->chinesePoint + arr[j]->mathsPoint + arr[j]->englishPoint;
			int b = arr[j + 1]->chinesePoint + arr[j + 1]->mathsPoint + arr[j + 1]->englishPoint;
			if (a > b)
			{
				Temp(arr[j], arr[j + 1]);
			}
		}
	}
}

int main()
{
	int n;
	vector<Student*> v;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		Student* student = new Student();
		cin >> student->name;
		cin >> student->chinesePoint;
		cin >> student->mathsPoint;
		cin >> student->englishPoint;
		v.push_back(student);
	}
	SortStudent(v);
	cout << v.back()->name << " " << v.back()->chinesePoint << " " << v.back()->mathsPoint << " " << v.back()->englishPoint << endl;
	for (int i = 0; i < v.size(); i++)
	{
		delete v[i];
	}
	return 0;
}
为啥不能AC

回复

4 条回复,欢迎继续交流。

正在加载回复...