1.第一個題,大概題目意思是求n句話中最長的單詞和最短的單詞
這個題目做的有點磕巴,好幾年沒有寫過c/c++了,連string的復制都不會寫了,哈哈哈,太笨了
后面一點點撿起來,還是寫出來了,本身沒啥;
第一:整行讀入,要自己分單詞
第二: 就是復制的時候是淺層copy還是深層copy,這里也忘記那個是深那個是淺了,反正就是一個直接復制地址,一個是復制內容。
粗暴的代碼:
#include<vector>
#include<cmath>
#include<cstring>
#include <iostream>
#include<algorithm>
using namespace std;
vector<string> str;
vector<int> str_leng;
int main(){int num;cin >> num;string line;int min_num=10000;int max_num=0;char max_str[1000]="",min_str[1000]="";getline(cin,line);while(num){getline(cin,line);if (1){
// cout <<num<< line << endl;int len=0;char tmp[1000]="";for (int i=0;i<line.length();i++){if (line[i]!=' '){tmp[len]=line[i];len++;}if(line[i]==' ' | i==line.length()-1){tmp [len]='\0';
// cout<<tmp<<" len: "<<len<<endl;if (len>max_num){
// cout<<tmp<<endl;max_num=len;strcpy(max_str,tmp);}if(len<min_num){
// cout<<"min: "<<tmp<<endl;min_num = len;strcpy(min_str,tmp);}len=0;strcpy(tmp,"");}}}num--;}cout<<max_str<<endl;cout<<min_str<<endl;return 0;
}
2、就是對n個學生進行按成績從高到低進行排序,成績重復的按名字字典序從小到大排序
這里就是自己設置一個學生結構體,然后自定義個結構體排序就好了
還可以的代碼:
沉默:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;struct student{char name[20];int score;
};
bool com(const student x,const student y)
{if(x.score==y.score)return x.name<y.name;return x.score>y.score;
}
int main(){int n;cin >>n;student std[30];for(int i=0;i<n;i++){cin >> std[i].name >> std[i].score;}sort(std,std+n,com);for(int i=0;i<n;i++){cout<<std[i].name<<" "<<std[i].score<<endl;}return 0;
}
3題
代碼:
數學計算題:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;int main(){int n=1;int res=0;int tmp =0;for (int i=0;i<1;i++){tmp = (n+1)*2;n = tmp;}cout<< n<<endl;return 0;
}
用隊列來表示能生存的數字,被隊列拋棄的就是死掉的數字,最后只剩一個數的時候,就是最終答案。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;
queue<int> q1;
int main(){int n;cin>>n;int id=1;int num=1;q1.push(id);bool flag=false;while(!q1.empty()){if(flag && q1.size()==1){cout<<q1.front()<<endl;return 0;}num++;if (id<n && !flag){id++;}else{flag=true;id=q1.front();q1.pop();}if(num==3){num=0;}else{q1.push(id);}}return 0;
}