第五堂社課

自訂義函式複習

自訂義函式複習

自訂義函式適用於

1. 程式分工時

2.不斷需要用到重複程式碼時

3.使程式碼更簡便時

自訂義函式在成發時很適合使用

自訂義函式就像數學的函式,只要帶入數字,就可以透過公式計算出答案

自訂義函式複習

#include<iostream>
using namespace std;
//自訂義函式寫在這裡

int main(){
    //主程式碼
}

自訂義函式複習

int f(int n){}

回傳值的變數型態

函式名稱

引入值

自訂義函式複習

#include<iostream>
using namespace std;

int add(int n){
	return n+10;
}

int main(){
    int a = 3;
    a = add(a);
    cout<<a;
}
#include<iostream>
using namespace std;

int divide(int x, int y){
    int cnt;
    while(x >= y){
    	x = x-y;
        cnt++;
    }
    return cnt;
}

int main(){
    int n = 20;
    int m = 4;
    int ans = divide(n, m);
    cout<<ans;
}

自訂義函式複習

void型態不回傳值

試用自訂義函式寫

試寫b034:平均之上的平均

struct 結構

struct 結構

struct可以把不同型態的各種變數包在一起

適用於當不同的東西但都需要用到相同類型的資料

舉例假設需要記錄全班的身高:

排序法

排序法

選擇排序與氣泡排序

選擇(貪心)排序:

從起始一一比對

找到陣列當中最大/小的值與其交換

也是所有排序法中交換次數最少的

氣泡排序:

倆倆比對

找尋左或右較大/小的值進行交換

選擇排序法

從大到小

4 1 5 2 3
5 1 4 2 3
5 4 1 2 3
5 4 3 2 1

選擇排序法

#include<iostream>
using namespace std;
int main(){
    int l[5] = {5, 4, 3, 2, 1};
    for(int i = 0; i<5-1; i++){
        //重複n-1回合
        int minj = i;
        //最小值所在位置
        for(int j = i+1; j<5; j++){
            if(l[j]<l[minj]) minj = j;
        }
        //將最小值數字與i格轉換
        if(minj != i){
            int k = l[i];
            l[i] = l[minj];
            l[minj] = k;
        }
    }
    for(int i = 0; i<5; i++){
        cout<<l[i]<<" ";
    }
}

選擇排序法

#include<iostream>
using namespace std;
int main(){
    int l[5] = {4, 1, 5, 2, 3};
    for(int i = 0; i<5-1; i++){
        //重複n-1回合
        int minj = i;
        //最小值所在位置
        for(int j = i+1; j<5; j++){
            if(l[j]<l[minj]) minj = j;
        }
        //將最小值數字與i格轉換
        if(minj != i){
            int k = l[i];
            l[i] = l[minj];
            l[minj] = k;
        }
    }
    for(int i = 0; i<5; i++){
        cout<<l[i]<<" ";
    }
}

從小到大

氣泡排序法

4 1 5 2 3

從大到小

4 1 5 2 3
4 5 1 2 3
4 5 2 1 3
4 5 2 3 1
5 4 2 3 1
5 4 3 2 1

氣泡排序法

從小到大

#include<iostream>
using namespace std;
int main(){
    int a[5] = {4, 1, 5, 2, 3};
    for(int i = 0; i<n; i++){
        cin>>a[i];
    }
    for(int j = 0; j<n-1; j++){
        for(int i = 0; i<n-1; i++){
            int b = 0;
            if(a[i+1]<a[i]){
                b = a[i];
                a[i] = a[i+1];
                a[i+1] = b;
            }

        }
    }
    for(int i= 0; i<n; i++){
        cout<<a[i]<<" ";
    }
}

deck

By CMIOC 29

deck

  • 90