5.14
#include#include #include using namespace std; // int main(){ // int case=1; // switch (case) // { // case true: // string file_name; // int ival=0; // int jval; // case false: // jval=next_num(); // break; // default: // break; // } // } int main(){ vector vs;//存储输入流输入的string对象 vector v1;//存储对string对象的重复次数 vector v2;//存储string对象 string s; int cnt=1; int m=1;//下面for循环无法统计最后一个string对象,定义一个变量充当最后一个string对象的标志位 //输入若干string对象 ctrl+d结束 while(cin>>s){ vs.push_back(s); } for(auto it=vs.begin();(it+1)!=vs.end();++it){ //前后两个相邻的string对象相同 if(*it==*(it+1)){ ++cnt; ++m; }else{ v1.push_back(cnt); cnt=1; v2.push_back(*it); m=1; } } v1.push_back(m); auto last=vs.cend(); v2.push_back(*(last-1)); int a=1; for(size_t i=0;i!=v1.size();++i){ if(v1[i]>a){ a=v1[i]; } } if(a==1){ cout<<"没有重复出现的单词"< if(v1[i]==a){ cout<<"单词"< 5.17
#include#include #include using namespace std; int main(){ vector v1={0,1,1,2}; vector v2={0,1,1,2,3,5,8}; size_t size1=v1.size(); size_t size2=v2.size(); size_t m=(size1>=size2)?size2:size1; bool flag;//标志位 是否是前缀数组 if(m==size1){ for(size_t i=0;i!=m;++i){ if(v1[i]==v2[i]){ flag=true; continue; } flag=false; break; } }else{ for(size_t i=0;i!=m;++i){ if(v2[i]==v1[i]){ flag=true; continue; } flag=false; break; } } cout< 5.19
#include#include #include using namespace std; int main(){ string rsp;//作为循环的条件,不能定义在do的内部 do { cout<<"请输入两个string对象"< >s1>>s2; if(s1.size()>=s2.size()){ cout< cout< >rsp; } while (!rsp.empty()&&rsp[0]!='n');//rsp为空或者输入no跳出循环 } 5.20
#include#include #include using namespace std; int main(){ string fs,s,pre_s;//定义string对象 if(cin>>fs){ //输入第一个string对象 pre_s=fs; while(cin>>s){ //连续输入s if(s==pre_s){ cout< pre_s=s; cout<<"没有单词时连续出现的"<5.21
#include#include #include using namespace std; int main(){ string fs,s,pre_s;//定义string对象 if(cin>>fs){ //输入第一个string对象 pre_s=fs; while(cin>>s){ //连续输入s // if(isupper(s[0])&&s==pre_s){ // cout< // pre_s=s; // cout<<"没有重复的单词"<cout<<"继续输入单词"< cout< pre_s=s; cout<<"没有单词时连续出现"<5.24
#include#include #include using namespace std; int main(){ int v1,v2; cin>>v1>>v2; if(v2==0){ throw runtime_error("被除数不能为0"); } cout< 5.25
#include#include #include using namespace std; int main(){ int v1,v2; while(cin>>v1>>v2){ try{ if(v2==0){ throw runtime_error("被除数不能为0"); } cout< cout< >c; if(!cin||c=='n'){ break; } } } return 0; }



