晾出我的代码:

#include<bits/stdc++.h>
using namespace std;
struct node{
	string name;
	int num;
	int scorea=0,scoreb=0,scorec=0,scored=0;
}stu[1000005];
int n,m;
int main(){
//	freopen("top2.in","r",stdin);
//	freopen("top3.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>stu[i].name;
	while(m--){
		int typ;
		cin>>typ;
		if(typ==2){
			int maxn=stu[1].scorea+stu[1].scoreb+stu[1].scorec+stu[1].scored;
			string maxid;
			int searchflag=0;
			for(int i=1;i<=n;i++){
				int stuscsum=stu[i].scorea+stu[i].scoreb+stu[i].scorec+stu[i].scored;
				if(stuscsum>maxn){
					maxn=stuscsum;
					maxid=stu[i].name;
				}
				else if(stuscsum==maxn){
					if(!searchflag){
						searchflag=1;
						maxid=stu[i].name;
						maxn=stuscsum;
					}
					if(stu[i].name<maxid){
						maxid=stu[i].name;
						maxn=stuscsum;
					}
				}
			}
			cout<<maxid<<endl;
		}
		else{
			string searchname;
			int changea,changeb;
			cin>>searchname;
			int searchid;
			for(int i=1;i<=n;i++){
				if(stu[i].name==searchname){
					searchid=i;
					break;
				}
			}
			cin>>changea>>changeb;
			switch (changea) {
				case 1:
					stu[searchid].scorea=changeb;
					break;
				case 2:
					stu[searchid].scoreb=changeb;
					break;
				case 3:
					stu[searchid].scorec=changeb;
					break;
				default:
					stu[searchid].scored=changeb;
					break;
			}
		}
		
	}
	return 0;
}

他说我的searchid没有声明?这是为什么

2 条评论

  • @ 2024-10-7 10:53:17

    注意看题目标签

    • @ 2024-10-7 10:50:35

      这题需要文件OI

      • 1