输入学生学号和成绩,但是输入的数据不是规整的,如001*%@46^&=46~:79,要求提取出其中的数据,按照总成绩排名
我的程序是这样的,然后就是报错,在把成绩相加那里就会报错,求助大佬们看看
#include<bits/stdc++.h>
using namespace std;
struct student{
string sno;
int yu,shu,ying;
int sum;
};
bool cmp(student a,student b){
return a.sum>b.sum;
}
int main(){
student stu[3];
string s[3];
for(int i=0;i<3;i++){
cin>>s[i][100];
}
for(int i=0;i<3;i++){
stu[i].sno=(s[i].substr(0,3)).c_str();
stu[i].yu=atoi(((s[i].substr(6,2)).c_str()));
stu[i].shu=atoi(((s[i].substr(12,2)).c_str()));
stu[i].ying=atoi(((s[i].substr(16,2)).c_str()));
stu[i].sum=stu[i].yu+stu[i].shu+stu[i],ying;//这句会报错
}
sort(stu,stu+3,cmp);
for(int i=0;i<3;i++){
cout<<stu[i].sno<<" "<<stu[i].yu<<" "<<stu[i].shu<<" "<<stu[i].ying<<" "<<stu[i].sum<<endl;
}
return 0;
}