C++ 第一次上機作業

weixin_30639719發表於2020-04-05

今天完成了C++第一次上機作業,感覺比較簡單。

題目:

  1. 求2個數或3個正整數中的最大數,用帶有預設引數的函式實現。
  2. 對3個變數按由小到大順序排序,要求使用變數的引用。
  3. 編寫一個程式,用同一個函式名對幾個資料進行從小到大排序,資料型別可以是整型、浮點型。用過載函式實現。
  4. 對第4題改用函式模板實現,並與第4題程式進行對比分析。

第一題程式碼:

 

 1 #include<iostream>
 2 using namespace std;
 3 
 4 void max(int a=0,int b=0,int c=0)
 5 {
 6     a= a>b ? a : b;
 7     a= a>c ? a : c;
 8     cout<<a<<endl;
 9 }
10 
11 int main()
12 {
13     max(1,2);
14     max(1,2,3);
15     return 0;
16 }

 

第二題程式碼:

#include<iostream>
using namespace std;

void sort(int &a,int &b,int &c)
{
    int tmp;
    if(a>b) {tmp=a;a=b;b=tmp;}
    if(b>c) {tmp=b;b=c;c=tmp;}
    if(a>b) {tmp=a;a=b;b=tmp;}
}

int main()
{
    int a1=3,a2=2,a3=1;
    sort(a1,a2,a3);
    cout<<a1<<" "<<a2<<" "<<a3<<endl;
}

第三題程式碼:

 1 #include<iostream>
 2 using namespace std;
 3 
 4 void sort(int* a){                     //氣泡排序
 5     int t;
 6     for(int j=4;j>0;j--)
 7         for(int i=0;i<=j-1;i++)
 8             if(a[i]>a[i+1])
 9             {t=a[i];a[i]=a[i+1];a[i+1]=t;}
10     for(int i=0;i<5;i++)
11         cout<<a[i]<<" ";
12 }
13 
14 void sort(float* a){
15     float t;
16     for(int j=4;j>0;j--)
17         for(int i=0;i<=j-1;i++)
18             if(a[i]>a[i+1])
19             {t=a[i];a[i]=a[i+1];a[i+1]=t;}
20     for(int i=0;i<5;i++)
21         cout<<a[i]<<" ";
22 }
23 
24 int main()
25 {
26     int a[5]={5,4,2,1,3};
27     float b[5]={5.1,4.1,2.1,1.1,3.1};
28     sort(a);
29     sort(b);
30     return 0;
31 }
32     

第四題程式碼:

 1 #include<iostream>
 2 using namespace std;
 3 template<typename T>
 4 int Partition(T* cp,int low,int high)
 5 {
 6     T tmp=cp[low];
 7     T pivotkey=cp[low];
 8     while(low<high)
 9     {
10         while(low<high&&cp[high]>=pivotkey) --high;
11         cp[low]=cp[high];
12         while(low<high&&cp[low]<=pivotkey) ++low;
13         cp[high]=cp[low];
14     }
15     cp[low]=tmp;
16     return low;
17 }
18 template<typename T>
19 void Qsort(T* cp,int low,int high)       //快速排序
20 {
21     if(low<high)
22     {
23         int pivotloc=Partition(cp,low,high);
24         Qsort(cp,low,pivotloc-1);
25         Qsort(cp,pivotloc+1,high);
26     }
27 }
28 int main()
29 {
30     int a[5]={5,4,2,1,3};
31     float b[5]={5.1,4.1,2.1,1.1,3.1};
32     Qsort(a,0,4);
33     Qsort(b,0,4);
34     for(int i=0;i<5;i++)
35     {
36         cout<<a[i]<<" "<<b[i]<<endl;
37     }
38     return 0;
39 }

******

 

轉載於:https://www.cnblogs.com/sage-blog/p/4029626.html

相關文章