📄 2142.cpp
字号:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
struct record{
char name[20];
int score;
};
bool cmp(record a,record b){
if(a.score!=b.score)
return a.score>b.score;
else
return strcmp(a.name,b.name)<0;
}
void main()
{
std::vector<record> recordvec;
int sum=0;
char command[20];
while(cin>>command){
if(strcmp(command,"NEW")==0){
vector<record>::iterator iter=recordvec.begin();
record mem;
cin>>mem.name>>mem.score;
int sign=0,c=0;
while(iter<recordvec.end()){
if(strcmp(recordvec[c].name,mem.name)==0){
sign=1;
break;
}
iter++;
c++;
}
if(sign==1){
sum-=recordvec[c].score;
recordvec.erase(iter);
}
recordvec.push_back(mem);
sum+=mem.score;
if(sign==0)
cout<<"A new record\n";
else
cout<<"update succeed\n";
}
else if(strcmp(command,"AVERAGE")==0){
if(recordvec.empty()){
cout<<"0.00\n";
continue;
}
double ave=sum*1.0/recordvec.size();
printf("%.2lf\n",ave);
}
else if(strcmp(command,"MAX")==0){
if(recordvec.empty()){
cout<<"0 0\n";
continue;
}
sort(recordvec.begin(),recordvec.end(),cmp);
int i=0,j=0;
while(recordvec[i].score==recordvec[0].score)
i++;
cout<<recordvec[0].score<<" "<<i<<endl;
while(j<i)
cout<<recordvec[j++].name<<endl;
}
else if(strcmp(command,"DELETE")==0){
char deleteone[20];
vector<record>::iterator iter=recordvec.begin();
cin>>deleteone;
int sign=0,c=0;
while(iter<recordvec.end()){
if(strcmp(recordvec[c].name,deleteone)==0){
sign=1;
break;
}
iter++;
c++;
}
if(sign==0)
cout<<"no such record\n";
else{
sum-=recordvec[c].score;
cout<<"delete succeed\n";
recordvec.erase(iter);
}
}
else if(strcmp(command,"QUIT")==0)
break;
memset(command,0,sizeof(command));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -