P35 习题 3.1
#include <iostream>
#include <algorithm>
using namespace std;
const int Max = 1000;
int arr[Max];
int main(){
// freopen("D:\\case.txt", "r", stdin);
int casenum;
cin>>casenum;
int maxnum = 0;
for (int i=0;i<casenum;i++){
cin>>arr[i];
if (arr[i]>maxnum){maxnum = arr[i];}
}
sort(arr,arr+casenum);
cout<<maxnum<<endl;
if (casenum == 1){cout<<"-1"<<endl;}
else{
for (int i=0;i<casenum-1;i++){
cout<<arr[i]<<' ';
}
}
return 0;
}
P35 习题 3.2
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool compareodd(int x,int y){
return x>y;
}
bool compareeven(int x,int y){
return x<y;
}
int main(){
//freopen("D:\\case.txt", "r", stdin);
vector <int> odd;
vector <int> even;
int tmp;
for (int i=0;i<10;i++){
cin>>tmp;
if (tmp&1){odd.push_back(tmp);}
else {even.push_back(tmp);}
}
bool flag = false;
sort(odd.begin(),odd.end(),compareodd);
sort(even.begin(),even.end(),compareeven);
for (int i=0;i<odd.size();i++){if(flag){cout<<' ';}flag = true;cout<<odd[i];}
for (int i=0;i<even.size();i++){cout<<' '<<even[i];}
return 0;
}
P36 习题 3.4
未完成
P35 习题 3.3
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
struct mouse{
string color;
int weight;
};
bool compare(mouse m1,mouse m2){
return m1.weight>m2.weight;
}
int main(){
//freopen("D:\\case.txt", "r", stdin);
mouse mo[100];
int casenum;
cin>>casenum;
for (int i=0;i<casenum;i++){
cin>>mo[i].weight;
cin>>mo[i].color;
}
sort(mo,mo+casenum,compare);
for (int i=0;i<casenum;i++){
cout<<mo[i].color<<endl;
}
return 0;
}
P36 习题 3.5
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
struct casenumber{
int x;
int y;
};
bool comparenum(casenumber c1,casenumber c2){
if (c1.x!=c2.x){
return c1.x<c2.x;
}
else {return c1.y<c2.y;}
}
int main(){
//freopen("D:\\case.txt", "r", stdin);
casenumber c[1100];
int casenum;
cin>>casenum;
for (int i=0;i<casenum;i++){
cin>>c[i].x;
cin>>c[i].y;
}
sort(c,c+casenum,comparenum);
cout<<c[0].x<<' '<<c[0].y;
return 0;
}
P40 习题 3.6
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool judge(int arr[3]){
if (arr[1]>arr[0]&&arr[1]>arr[2]){return true;}
else if (arr[1]<arr[0]&&arr[1]<arr[2]){return true;}
else {return false;}
}
int main(){
//freopen("D:\\case.txt","r",stdin);
//int num;
//cin>>num;
// while(num--){
int temp[3];
vector <int> arr;
int casenum;
cin>>casenum;
bool flag = false;
int x;
for (int i=0;i<casenum;i++){cin>>x;arr.push_back(x);}
for (int i=0;i<casenum;i++){
if (i == 0){
if(arr[i]!=arr[i+1]){
if (flag){cout<<' ';}
cout<<i;
flag = true;
}
}
else if (i == casenum-1){
if(arr[i]!=arr[i-1]){
if (flag){cout<<' ';}
cout<<i;
flag = true;
}
}
else{
temp[0] = arr[i-1];
temp[1] = arr[i];
temp[2] = arr[i+1];
if (judge(temp)){
if (flag){cout<<' ';}
cout<<i;
flag = true;
}
}
}
// cout<<endl;
//}
return 0;
}
P40 习题 3.7
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
int locatechar(char x,vector <char> str_char){
for (int i=0;i<str_char.size();i++){
if (x == str_char[i]){return i;break;}
}
return -1;
}
int main(){
//freopen("D://case.txt","r",stdin);
string casestring;
cin>>casestring;
vector <char> str_char;
vector <int> str_count;
vector <char> result;
for (int i=0;i<casestring.size();i++){
int index = locatechar(casestring[i],str_char);
if(index!=-1){
str_count[index]++;
}
else{
str_char.push_back(casestring[i]);
str_count.push_back(1);
}
}
for (int i=0;i<str_count.size();i++){
if (str_count[i]>1){
result.push_back(str_char[i]);
}
}
for (int i=0;i<result.size();i++){
bool flag = false;
for (int j=0;j<casestring.size();j++){
if (casestring[j] == result[i]){if(flag){cout<<',';}cout<<result[i]<<':'<<j;flag = true;}
}
cout<<endl;
}
return 0;
}