第一题 :
C++程序:
#include<iostream> #include<string> using namespace std; void main() { string str,s; int flag[]={0,0,0,0,0,0,0,0,0,0}; while(cin>>str) { memset(flag,sizeof(flag),0); for(int i=0;i<str.size();i++) { if(flag[str[i]-'0']==0) { s=str[i]+s; flag[str[i]-'0']=1; } } int flag=1; for(int i=0;i<s.size();i++) { if(flag&&s[i]=='0') continue; else { flag=0; cout<<s[i]; } } cout<<endl; } }
第二题 :
题目错了,在剩余25分钟左右又改正回来了,虽然比较坑,但这也间接考察了我们的临场应变能力。
心得:1)不论题目是否正确,应该先把框架写出来。
2)相信自己,不要慌
#include<iostream> #include<string> using namespace std; void main() { int temp=0; int output=0; while(cin>>temp) { if(temp<-40) temp=-40; if(temp>100) temp=100; if(temp>=-40&&temp<0) { output=34/3*(temp+150)-1000; cout<<output<<endl; //break; } if(temp>=0&&temp<40) { output=6*temp+700; cout<<output<<endl; //break; } if(temp>=40&&temp<300) { output=6*(temp-40)+940; cout<<output<<endl; //break; } if(temp>=300&&temp<=550) { output=20*(temp-300)+2500; cout<<output<<endl; //break; } } }
第三题 :
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; struct Data { string section; string key; string value; }data; string find_section(string str) { if(str[0]!=';') { int k=str.find_first_of(';',0); str=str.substr(0,k); int i=str.find_first_of('[',0); int j=str.find_first_of(']',i); string section=str.substr(i+1,j-i+1-2); return section; } else return "error"; } Data find_key_value(string str) { int i=str.find_first_of('=',0); string key1=str.substr(0,i); string value1=str.substr(i+1,str.size()-i+1); string key2,value2; for(int i=0;i<key1.size();i++) { if(key1[i]!=' ') key2=key2+key1[i]; } for(int i=0;i<value1.size();i++) { if(value1[i]!=' ') value2=value2+value1[i]; } Data data; data.key=key2; data.value=value2; return data; } bool compare(Data a,Data b) { if(a.section!=b.section) return a.section<b.section; else return a.key<b.key; } void main() { vector<Data> s; Data data; string section; string str; int i=1; while(getline(cin,str)) { i++; section=find_section(str); while(section=="error") { getline(cin,str); section=find_section(str); } getline(cin,str); data=find_key_value(str); data.section=section; s.push_back(data); //if(i>2) // break; } sort(s.begin(),s.end(),compare); for(vector<Data>:: iterator it=s.begin();it!=s.end();it++) { cout<<'{'; cout<<(*it).section; cout<<'}'; cout<<'{'; cout<<(*it).key; cout<<'}'; cout<<'{'; cout<<(*it).value; cout<<'}'; cout<<endl; } cout<<'end'; }