1. 程式人生 > >北理工計算機復試上機 2012

北理工計算機復試上機 2012

計算 des bool 輸入 blog col stream algo 排序

1.輸入10個數,從小到大排序

示例:

輸入:1,2,5,7,9,10,45,67,24,26

輸出:1,2,5,7,9,10,24,26,45,67

 1 #include<iostream>
 2 using namespace std;
 3 int main(){
 4 
 5     int a[10]={0};
 6     int x=0;
 7     while(x<10){
 8         cin>>a[x];
 9         x++;
10     }
11     
12     for(int i=10;i>0;i--){
13         int
flag=0; 14 for(int j=1;j<i;j++){ 15 if(a[j-1]>a[j]){ 16 int temp=a[j-1]; 17 a[j-1]=a[j]; 18 a[j]=temp; 19 flag=1; 20 } 21 }//for 22 if(flag==0)break; 23 } 24 25 26 for(int k=0;k<10
;k++){ 27 cout<<a[k]<<" "; 28 } 29 cout<<endl; 30 return 0;
  }

2.學生有(學號,姓名,性別,年齡),初始化三個學生的信息
  (10,wes,f,23)(20,ert,f,45) (30,str,t,89),
然後對學生信息進行插入和刪除處理
例如:
  I 12,rt,f,67
表示插入
12,rt,f,67
D10
表示刪除學號為10的學生的信息
每次操作完成以後輸出所有學生的信息按學號從大到
小排序
輸入:
I 12,rt,f,67
輸出(10,wes,f,23),(12,rt,f,67),(20,ert,f,45),(30,str,t,89)
輸入:
D10
輸出:
(12,rt,f,67),(20,ert,f,45),(30,str,t,89)

 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 #include<vector>
 5 using namespace std;
 6 
 7 
 8 class Student{
 9 public:
10     int id;
11     string name;
12     char sex;
13     int age;
14 };
15 
16 bool des(Student a,Student b){
17 return a.id>b.id;
18 };
19  int main(){
20     vector<Student> students;
21     Student s;
22     s.id=10;
23     s.name="wes";
24     s.sex=f;
25     s.age=23;
26     students.push_back(s);
27 
28     s.id=20;
29     s.name="wes";
30     s.sex=f;
31     s.age=23;
32     students.push_back(s);
33 
34     s.id=30;
35     s.name="wes";
36     s.sex=f;
37     s.age=23;
38     students.push_back(s);
39     char order;
40     cout<<"請輸入命令"<<endl;
41         vector<Student>::iterator i;
42 
43     while(cin>>order){
44         if(order==I){
45             cout<<"親輸入學生信息"<<endl;
46             cin>>s.id>>s.name>>s.sex>>s.age;
47             students.push_back(s);
48             sort(students.begin(),students.end(),des);
49             for(i=students.begin();i!=students.end();i++)
50             {
51                 cout<<(*i).id<<" "<<(*i).name<<" "<<(*i).sex<<" "<<(*i).age<<endl;
52             }
53         }
54         if(order==D){
55             cout<<"請輸入刪除學號"<<endl;
56             int dnum;
57             cin>>dnum;
58             for(i=students.begin();i!=students.end();i++){
59                 if((*i).id==dnum)
60                 {
61                     students.erase(i);
62                     break;
63                 }
64             
65             }
66             sort(students.begin(),students.end(),des);
67             for(i=students.begin();i!=students.end();i++)
68             {
69                 cout<<(*i).id<<" "<<(*i).name<<" "<<(*i).sex<<" "<<(*i).age<<endl;
70             }
71         }    
72     }
73 return 0;
74 }

3.利用後序和中序確定前序遍歷結果
示例:
  輸入(按後序、中序):CHBEDA CBHADE
  輸出:ABCHDE

北理工計算機復試上機 2012