第五堂社課
自訂義函式複習
自訂義函式複習
自訂義函式適用於
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