---
# System prepended metadata

title: C

---

# 20230918 課堂作業
## ch03-12 各種字面常數表示法的應用
```康軒勻 1206219 資訊一乙19號
#include<iostream>
using namespace std;

int main()
{
   int i;           double d;
   i = 074;          d = 6.02e22;
   cout << "i= " << i << "   d= " << d << endl;
   i=0xA38;            d = 3.14159e-1;
   cout << "i= " << i << "    d= "  << d << endl; 
}

```
![](https://hackmd.io/_uploads/H1AgpNry6.png)
執行結果:
![](https://hackmd.io/_uploads/BkjwTNB1p.png)

## ch03-18讓使用者從鍵盤輸入資料
```
#include<iostream>
using namespace std;

int main()
{
  int grade;
  int student_ID;
  cout << "請問你是幾年級的學生:";
  cin >> grade;
  cout << "請問你得學號是:";
  cin >> student_ID;
  cout << "你是 " << grade << "年級的學生" << endl;
  cout << "學號是"  << student_ID;
}
```
![](https://hackmd.io/_uploads/rylt6rSkp.png)
執行結果:
![](https://hackmd.io/_uploads/BkFjTSrJT.png)
## ch03-19 換匯程式
```
#include<iostream>
using namespace std;
#define US 29.5  //
#define JP 0.277  //

int main() {
  double money;
  cout << "請輸入要兌換的金額:";
  cin >> money;
  cout << "可兌換" << money / US << "美金\n";
  cout << "或兌換" << money / JP << "日幣";
}
```
![](https://hackmd.io/_uploads/HkIdNAikT.png)
執行結果:
![](https://hackmd.io/_uploads/SJmcNRoJT.png)
## ch03-20 交換兩變數的值
```
#include <iostream>
using namespace std;

int main()
{
	int a = 10 , b = 20;
	int temp;
	
 cout << "交換前 a = " << a << "\t b = " << b << endl;
	
	temp = a;
	a=b;
	b=temp;
	
	cout << "交換後 a = "<< a << "\t b= " << b << endl; 
}
```
![](https://hackmd.io/_uploads/rkdXJJ3ya.png)
![](https://hackmd.io/_uploads/HyuV1Jnkp.png)
## ch03-21 大小寫轉換
```
#include <iostream>
using namespace std;

int main()
{
	char upper = 'S', lower;
	
	lower = upper + 32 ;
	cout << upper << "的小寫是" << lower << endl; 
}
```
![](https://hackmd.io/_uploads/BkDrW12Jp.png)


執行結果:
![](https://hackmd.io/_uploads/HJePbJ2JT.png)
## 心得感想
在這次的程式實習中 我學會了許多程式的技巧及相關技能 例如: 字面常數的表示法 使用者從鍵盤輸入資料 換匯 變數值互換 大小寫字母轉換等實用程式 為我的未來學習程式之路打下了堅實的基石。

## 實作練習:
### p74-1:
```
#include<iostream>
using namespace std;
#define SIZE 10   

int main()
{
  cout << SIZE ;
}
```
![](https://hackmd.io/_uploads/SJPoBD0y6.png)
執行結果
![](https://hackmd.io/_uploads/SJKTSPAJ6.png)
### p74-2:
```
#include <iostream>
using namespace std;

int main()
{
	int a ;
	a = 10 ;
	int b ;
	b = 101.7;
	int c ;
	c = 'c' ;
}
```
![](https://hackmd.io/_uploads/rJf8uvRyp.png)
執行結果:
![](https://hackmd.io/_uploads/Sya9OvCyp.png)
###  p74-5:
```
#include <iostream>
using namespace std;

int main() 
{
	cout << "我正在學習C++語言" ; 
}
```
![](https://hackmd.io/_uploads/Hkxp2DAyT.png)
執行結果:
![](https://hackmd.io/_uploads/ryhC2DRyp.png)
### p74-7:

```
#include <iostream>
using namespace std;

int main()
{
	int a = 10 , b = 20, c = 30;
	int temp;
	
 cout << "交換前 a = " << a << "\t b = " << b << "c = "  << c << endl;
	
	temp = a;
	a=b;
	b=temp;
	
	temp= a;
	a=c ;
	c=temp;
	
	cout << "交換後 a = "<< a << "\t b = " << b << "c = " << c << endl ;
}
```
![](https://hackmd.io/_uploads/ByQJxO016.png)
執行結果:
![](https://hackmd.io/_uploads/BJGQxO0y6.png)


# 20230925課堂作業(CH4運算子與運算式)
## CH04-05 前置與後置遞增算
程式碼:
```
#include<iostream>

int main()
{
	int i = 100, j = 100, k = 100;
	i++;   
	std::cout << "變數i的值為:"<< i;
	
	j--;
	std::cout << "\n變數j的值為:" << j;
	
	k++;
	k--;
	std::cout << "\n變數 k 的值為:" << k; 
}
```
程式碼實作畫面:
![](https://hackmd.io/_uploads/H10CfFCkp.png)
執行結果:
![](https://hackmd.io/_uploads/SkReXtR16.png)
## CH04-06 關係運算子
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
	int i = 3, j = 3;
	
	cout << boolalpha;
	
	cout << "(i == j) :" << (i == j) << endl;
	cout << "(i > j)  :"  << (i > j) << endl;
	cout << "(++i > j):"<< (++i > j) << endl;
	cout << "(j-- < 3):"<< (j-- < 3) << endl;
	cout << "(i != j):" << (i !=j) << endl; 
}
```
程式實作畫面:

![](https://hackmd.io/_uploads/SyjivFAk6.png)
執行結果:
![](https://hackmd.io/_uploads/SkCgdFA1T.png)
## CH04-07邏輯運算子練習
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
	int i = 3;
	bool b = false;
	
	cout << boolalpha,
	cout << "i = " << i << "\tb =" << b << endl;
	cout <<"i  && b : " << (i && b) << endl;
	cout << "i || b : " << (i || b) << endl;
	cout << "i &&!b:  "  << (i &&!b) << endl;
	cout << "i ||!b:" " << (i ||!b)" << endl; 
}
```
程式實作畫面:
![](https://hackmd.io/_uploads/SyxnVjvlT.png)
執行結果:
![](https://hackmd.io/_uploads/S1ApEjwgp.png)
## 0923實習心得
在本次的程式設計實習中,我學習到了程式中的許多運算技巧,例如邏輯運算子 關係運算子 前置與後置的遞增與遞減等等 讓我對程式的計算與比較有了初步的認識 雖說只是基礎中的基礎 但千里之行始於足下 想必這些未來業會對我很有幫助的
## ch04-08 位元運算子練習
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
	short i = 9, j = 25;
	
	cout << "i >> 1 = " << (i >> 1) << endl;
	cout << "i << 1 = " << (i << 1) << endl;
	cout << "~i = " << (~i) << '\n' << endl;
	
	cout << "i = " << i << "\tj =" << j << endl;
	
	cout << "i &  j = " << (i & j) << endl;
	cout << "i |  j = " << (i | j) << endl;
	cout << "i ^  j = " << (i ^ j) << endl;
 } 
```
程式實作畫面:
![](https://hackmd.io/_uploads/BJfcA2Pea.png)

執行結果:
![](https://hackmd.io/_uploads/r1BC02Dea.png)
計算過程:
![](https://hackmd.io/_uploads/H1zw3v_xa.png)
![](https://hackmd.io/_uploads/BJAnnP_xp.png)
## 實作練習
### 攝氏溫度轉華氏溫度
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
  
double c;  // 攝氏溫度
double f;  // 華氏溫度

cin >> c;
f=9/5*c+32;

cout << "攝氏 " << c << " 度 = 華氏 " << f << " 度";
}
```
程式碼實作畫面:
![](https://hackmd.io/_uploads/rksDf_ugT.png)
執行結果:
![](https://hackmd.io/_uploads/rJQoMddgT.png)
### 自動販售機(幣值轉換練習)
程式碼:
```
#include <iostream>
using namespace std;

int main ()
{
	int money,ten,five,one;
	cout << "請輸入您的換幣金額:";
	cin >> money;
	ten = money / 10;
	five = (money%10)/5;
	one = (money%10)%5;
	cout << money << "元共可兌換零錢:" << "可樂" << ten << "個"
	     << "汽水" << five << "個" << "饅頭" << one << "個"; 
}
```
程式碼實作面:
![](https://hackmd.io/_uploads/HJwaOd_gT.png)
執行結果:
![](https://hackmd.io/_uploads/BJlJtd_xT.png)
## 0925實習心得
在本次的程式設計實習中 我學會了位元運算子 幣值換算 攝氏華視互相轉換等程式以及其內部的運算 除此之外 我也學會了二進制 十進制 眾多特殊符號的計算 其中有許多符號我背不起來或理解不起來 想必未來也必須多花點時間加強這一單元
# 20231016 課堂作業(CH5流程控制)
## 本章應用實例 (HW)
### 05-24電影分級制度
執行畫面:
![](https://hackmd.io/_uploads/BJ-OTPmfa.png)
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
  int age_range;
  cout << "請輸入年齡 (0~120):";
  cin >> age_range;
  switch(age_range){
  	case 0 ... 5:
  	  cout << "可看普遍級";
  	  break;
  	case 6 ... 11:
  	  cout << "可看普遍級及保護級";
  	  break;
  	case 12 ... 17:
  	  cout << "可看限制級以外的影片";
  	  break;
  	case 18 ... 120:
  	  cout << "可看各級影片";
  	  break;
  	defauit:
  	  cout << "您並未輸入正確的年齡!"; 
  }
 } 
```
實作畫面:
![image](https://hackmd.io/_uploads/Sy6ZAdTdp.png)
### 05-27 猜數字遊戲
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
  int n, ans=7;
  while (n !=ans){
  	cout << "猜猜看數字是多少？(1~10):";
  	cin >> n;
  	if (n < ans){
	   cout << "再大一點";
	   }
	else if(n > ans){
		cout << "再小一點";
	}   
  }
  cout << "猜對了! YA!";
 } 
```
實作畫面:
![image](https://hackmd.io/_uploads/H1ZtxJk_T.png)
執行畫面:
![image](https://hackmd.io/_uploads/Hy9rWkku6.png)

### 05-28 2的N次方
執行畫面:
![](https://hackmd.io/_uploads/Hy4v1OQG6.png)
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
  int n, p = 1, i = 1;
  cout << "請輸入n值以求得2的n次方值:";
  cin >> n;
  while (i <= n){
  	p = p * 2;
  	i++;
  } 
  cout << "2的"<< n << "次方為:" << p;
 } 
```
實作畫面:
![image](https://hackmd.io/_uploads/HyKUAu6d6.png)
### 05-29 成績加總
執行畫面:
![](https://hackmd.io/_uploads/ryhewwBza.png)
程式碼:
```
#include<iostream>
using namespace std;


int main()
{
  int sum = 0, n = 0;
  do{
  	sum = sum + n;
  	cout << "請輸入成績:";
  	cin >> n;
  }while(n !=-1);
  
  cout << "總分為:"<<sum; 
}
```
實作畫面:
![image](https://hackmd.io/_uploads/HkZYR_pOp.png)
### 5-31 顯示1~50的質數
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
  bool a = 1;
  for(int i = 2;i <= 50; i++){
  	for(int j=2;j <=i - 1; j++){
  		if(i  % j==0){
  			a = 0;
		  }
	  }
	  if(a == 1){
	  	cout << i << " ";
	  }
	  a = 1;
  }
}
```
實作畫面:
![image](https://hackmd.io/_uploads/r1Y84Jyup.png)
執行畫面:
![image](https://hackmd.io/_uploads/Sk3PV1kd6.png)
### 05-32 階層計算機
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
  while(true){
  	cout << "請輸入 1-170 間的整數(輸入0即結束程式):";
  	int num = 0;
  	cin >> num;
  	
  	if (num == 0)
  	  break;
  	
  	cout << num << "! 等於";
  	
  	double fact;
  	for (fact = 1; num > 0;num--)
  	  fact = fact *num;
  	  
  	cout << fact << "\n\n";	
  }
  cout << "謝謝您使用階承計算機。";
}
```
實作練習:
![image](https://hackmd.io/_uploads/B1aKeg1OT.png)
執行畫面:
![image](https://hackmd.io/_uploads/Hk_TTdpOp.png)
## 課後練習
### 1.心理測驗(if...else if應用)
執行畫面:
![](https://hackmd.io/_uploads/SksNqQ9Zp.png)
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
	int chose;
	cout<<"發生船難,你選擇留下什麼?\n";
	cout<<"選擇(1)留下老人和孕婦\n"; 
	cout<<"選擇(2)留下老人和嬰兒\n";
	cout<<"選擇(3)留下老人或金銀財寶\n";
	cout<<"選擇(4)留下孕婦和嬰兒\n";
	cout<<"選澤(5)留下孕婦和金銀財寶\n"; 
	cout<<"選擇(6)留下嬰兒和金銀財寶\n";
	cin >> chose;
	if (chose==1)
	     cout <<"你的感情很細膩,善於觀察細節,在感情中,\n相比於戀人的甜言蜜語,你更在乎對方實際的行動。\n";
	else if (chose==2)
		 cout <<"在感情中，你不僅洞察力超好，第六感也很強，\n越是親近的人這種直覺越敏銳，所以另一半對你很難有所隱藏，因為你可以憑借著蛛絲馬跡得到你想要知道的消息。\n";
	else if (chose==3)
	      cout <<"你是個典型的顏控，在擇偶時很注重另一半的外表和身高。\n";
   else if (chose==4)
         cout <<"面對感情你很承盾，一方面你很感性，渴望浪漫熱烈的愛情；\n另一方面你又很理性，明白現實的殘酷和金錢的重要性\n";
   else if (chose==5)
          cout <<"在感情方面你很挑剔，所以很難遇到心動的對象。不過在戀愛時你卻很專一\n，一旦喜歡上某個人，你就會全心全意的對他好，所以和你談戀愛是一件很幸福的事。\n";
   else if (chose==6) 
          cout <<"在感情中你很缺乏安全感，有時候會忍不住通過試探或考驗的方式去確認對方是否愛你。\n";
	else cout <<"亂輸入，活該一輩子舔狗命!!!";
}
```
實作畫面:
![image](https://hackmd.io/_uploads/H1upRdad6.png)
### 2. 判斷座標(x,y)在第幾象限。 (巢狀if…else 應用)
執行畫面:
![](https://hackmd.io/_uploads/HJlMzV9WT.png)
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
	int x, y;
	cout << "請輸入x值(不可輸入0):";
	cin >> x;
	cout << "請輸入y值(不可輸入0):";
	cin >> y;
	if(x > 0){
		if(y > 0){
			cout << "("<< x << "," << y << ")在第一象限";
		}else{
		   cout << "(" << x << "," << y << ")在第四象限";
		   }
		}else {
		  if(y>0){
		  	cout <<"(" << x << ", " << y << ")在第二象限";	   
		  }else {
		  	cout << "(" << x << "," << y << ")在第三象限";
		  }
	}
}
```
實作畫面:
![image](https://hackmd.io/_uploads/BkwJJKaua.png)
### 3.用*組成三角形(for迴圈的應用)
執行畫面:
![](https://hackmd.io/_uploads/HyhvWIXGp.png)
程式碼:
```
#include<iostream>
using namespace std;
int main()
{
	int s,t;
	cout << "請輸入層數：";
	cin >> s;
	//正直角三角形
	for(int i=1; i<=s; i++) {
		for(int k=1; k<=i; k++) {
			cout<<"*";
		}
		cout<<endl;
	}
	cout<<endl;
	//倒直角三角形
	for(int i=1; i<=s; i++) {
		for(int k=1; k<=s-i+1; k++) {
			cout<<"*";
		}
		cout<<endl;
	}
	cout<<endl;
	//空白正直角三角形
	for(int i=1; i<=s; i++) {
		for(int j=1; j<=s-i; j++) {
			cout<<" ";
		}
		for(int k=1; k<=i; k++) {
			cout<<"*";
		}
		cout<<endl;
	}
	cout<<endl;
	//空白倒直角三角形
	for(int i=1; i<=s; i++) {
		for(int j=1; j<=i-1; j++) {
			cout<<" ";
		}
		for(int k=1; k<=s-i+1; k++) {
			cout<<"*";
		}
		cout<<endl;
	}
}
```
實作畫面:
![image](https://hackmd.io/_uploads/H15zktTdp.png)
### 4.十二生肖查詢(switch…case的應用)
執行畫面:
![](https://hackmd.io/_uploads/BypVwV9Za.png)
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
	int year;
	cout << "請輸入民國幾年:";
	cin >> year ;
	switch (year%12) {
		case 1 :
			cout << "鼠\n";
			break;
		case 2:
		    cout << "牛\n";
		    break;
		case 3 :
		    cout << "虎\n";
		    break;
		case 4 :
		    cout << "兔\n";
		    break;
	    case 5 :
			cout << "龍\n";
			break;
		case 6 :
		    cout << "蛇\n";
		    break;
		case 7 :
		    cout << "馬\n";
		    break;
		case 8 :
		    cout << "羊\n";
		    break;
		case 9 :
			cout << "猴\n";
			break;
		case 10 :
		    cout << "雞\n";	
		    break;	
		case 11 :
		    cout << "狗\n";
			break;
		case 12 :
		    cout << "豬\n";
			break;				 
	}
}
```
實作畫面:
![image](https://hackmd.io/_uploads/HJbrJYT_T.png)
![image](https://hackmd.io/_uploads/B1TBktau6.png)
### 5.閏年
執行畫面:
![](https://hackmd.io/_uploads/SyG1WU7Mp.png)
程式碼:
```
#include<iostream>
using namespace std;
int main() {
	int year;
	cout << "請輸入一個西元年";
	cin >> year;
	
	    if((year%4)==0)
	        cout << year << "年是閏年" <<endl;
	    else{
		
	        cout << year << "年非閏年" <<endl; 
	    }
		} 
 
 
```
實作畫面:
![image](https://hackmd.io/_uploads/HkPKJF6ua.png)
### 6重複計算BMI(while 迴圈)
執行畫面:
![](https://hackmd.io/_uploads/r1WktP7Mp.png)
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
  char go_again = 'y';
  float height, weight;
  
  while(go_again == 'Y' || go_again == 'y') {
  	cout << "請輸入身高(公分):";
  	cin >> height;
	cout << "請輸入體重(公斤):";
	cin >> weight;
	cout << "您的BMI為:" << weight / (height * height)*10000 << endl;
	
	cout << "要繼續計算另一位嗎?" <<
	        "(要請輸入Y或y,若不要請輸入非Y或y的字元):";
			cin >> go_again; 
  }
}
```
實作畫面:
![image](https://hackmd.io/_uploads/BJRjyF6uT.png)
### 7計算兩整數的最大公因數(while 迴圈)
執行畫面:
![](https://hackmd.io/_uploads/SJoqFP7MT.png)
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
  int num1,num2,temp;
  cout << "計算兩整數的最大公因數\n";
  cout << "請輸入第1個數字: ";
  cin >> num1;
  cout << "請輸入第2個數字: ";
  cin >> num2;
  
  while (num2!=0) {
  	temp = num1%num2;
  	num1 = num2;
  	num2 = temp;
  } 
  cout << "最大公因數是:" << num1;
}
```
實作畫面:
![image](https://hackmd.io/_uploads/S1hpkK6O6.png)
### 8密碼檢驗程式
執行畫面:
![](https://hackmd.io/_uploads/S1naWd7GT.png)
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
    int pwd;
    int i=1;
    do{
        if (i<=3){
        cout << "請輸入第" << i <<"次ATM密碼:";
        cin >> pwd;}
        if (i>3) {
        cout << "密碼輸入錯誤3次，無法登入。";
        break;}
        if (pwd!=123)
        cout << "密碼錯誤，請再輸入一次...\n";
        i++;
     }while (pwd!=123);
    if (pwd==123)
    cout << "歡迎進入本系統";
    }
```
實作畫面:
![image](https://hackmd.io/_uploads/H1v1gKTOT.png)
## ch05心得感想:這一次的程式設計實習中,while跟for是我覺得最難又最重要的,首先,它們的使用方式就有一定的難度,需要複習好幾次才能懂,但我覺得它其中的邏輯才是最困難的,許多時候課本的範例我甚至不知道為什麼會那樣,然而,這部分又很重要,也就是說,我需要多複習,否則基礎不好,之後就麻煩了。
# 20231106 課堂作業(CH6函式)
## 隨堂練習
### Ch06-21 以時間亂數種子產生5個500~1000的亂數
程式碼:
```
//訊一乙 19號 康軒勻 
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;

int main()
{
  srand(time(0));
  for (int i = 0; i < 5; i++)
    cout << (rand() %501) + 500 << endl; 	
 } 
```
程式實作畫面:
![image.png](https://hackmd.io/_uploads/HklMnCH7T.png)
執行結果:
![image.png](https://hackmd.io/_uploads/H1GH3CSX6.png)

## 應用實例練習
### ch06-24 查詢語音費率程式
程式碼:
```
#include<iostream>
using namespace std;

void bill(int a){
   switch(a){
   	case 196:
   	  cout << "語音費率每秒:0.0869元";
	  break;
	case 396:
	  cout << "語音費率每秒:0.0782元";
	  break;
	case 796:
	  cout << "語音費率每秒:0.0696元";
	  break;
	default:
	  cout << "無此費率,請重新查詢!";    	
   }
} 

int main()
{
	int a;
	cout << "請輸入要查詢的月租方案(196、396、796):";
	cin >> a;
	bill(a);
}
```
程式實作畫面:
![image](https://hackmd.io/_uploads/ry_qdrdNT.png)
執行結果:
![image](https://hackmd.io/_uploads/SJun_SuVT.png)
### Ch06-25 猜數字遊戲
程式碼:
```
//訊一乙 19號 康軒勻 
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;

int number(){
	int num = (rand()%10)+1;
	return num;
} 

int main()
{
	srand(time(0));
	int n, ans;
	ans = number();
	while (n !=ans){
	  cout << "猜猜看數字是多少?(1~10):";
	  cin >> n;
	  if(n > ans)
	    cout << "猜錯了,再小一點\n";
	  else if(n < ans)
	    cout << "猜錯了,再大一點\n";
	}
    cout << "猜對了!YA!";	
}
```
程式實作畫面:
![image.png](https://hackmd.io/_uploads/H1zyCAB7a.png)
執行結果:
![image.png](https://hackmd.io/_uploads/rk_NCCBmT.png)
### Ch06-26 猜拳遊戲
程式碼:
```
//訊一乙 19號 康軒勻
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;

void game(int user){
	int com = (rand() % 3)+1;
	if(user == com){
	  cout << "平手"; 
	}else if(user == 1){
	  if(com ==2)
	    cout << "你出剪刀,電腦出石頭,你輸了";
	  else
	    cout << "你出剪刀,電腦出布,你贏了";
	}else if(user == 2){
	   if(com == 3)
	     cout << "你出石頭,電腦出布,你輸了";
	   else 
	     cout << "你出石頭,電腦出剪刀,你贏了";
	}else if(user == 3){
	  if(com == 1)
	    cout << "你出布,電腦出剪刀,你輸了";
	  else
	    cout << "你出布,電腦出石頭,你贏了";	
	} 
} 

int main()
{
	int user;
	srand(time(0));
	cout << "請輸入你要出的拳(1.剪刀 2.石頭 3.布):";
	cin >> user;
	game(user);
}
```
程式實作畫面:
![image.png](https://hackmd.io/_uploads/B1vQmyUXT.png)
![image.png](https://hackmd.io/_uploads/BkQNXkIXp.png)
執行畫面:
![image.png](https://hackmd.io/_uploads/r1nUXkImT.png)
### ch06-27 階乘函式
程式碼:
```
#include<iostream>
using namespace std;
double factorial(int);

int main()
{
   while(true){
   	 cout << "請輸入 1-170間的整數(輸入0即結束程式):";
   	 int num = 0;
   	 cin >> num;
   	 
   	 if (num == 0)
   	   break;
   	   
   	 cout << num << "! 等於 " << factorial(num) << endl;		  
   }
   cout << endl << "謝謝您使用階乘計算機。";	
 } 
 
 double factorial(int n)
 {
 	double fact;
 	for(fact=1 ; n>0 ; n--)
 	  fact = fact * n;
 	  
 	  return fact;
 }
```
實作畫面:
![image](https://hackmd.io/_uploads/Syzt6SOVa.png)
執行畫面:
![image](https://hackmd.io/_uploads/SyTcTSdET.png)
### Ch06-28 猜點數遊戲
程式碼:
```
//訊一乙 19號 康軒勻
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int dice();

int main()
{
	srand(time(0));
	int num1, num2;
	cout << "輸入1~6其中一個數字,猜骰子點數:";
	cin >> num1;
	while(num1!=0){
	num2 = dice();
	cout << "骰子的點數是:"<< num2 << "\n";
	if (num2 == num1)
	   cout << "猜中了";
	else 
	   cout << "沒猜中";
	
	cout << ",再試一次吧!\n"
	<< "輸入1~6其中一個數字,猜骰子點數(或輸入0已結束遊戲):";
	cin >> num1; 
	}
}

int dice()
{
  int a;
  a = (rand() %6)+1;
  return a;
}
```
程式實作畫面:
![image.png](https://hackmd.io/_uploads/HJUo8y8mp.png)
執行畫面:
![image.png](https://hackmd.io/_uploads/Hkmu8kU7p.png)
## 課後練習
### 1.組成三角形
程式碼:
```
#include<iostream> 
#include<cmath>
using namespace std;
int triangle (double,double,double);

int main()
{
   double a,b,c,t; 
   cout << "請輸入三角形的三個邊長:\n";
   cin >> a;
   cin >> b;
   cin >> c;
   t = triangle(a,b,c);
   if(t == 1){
   	    cout << a << "、" << b << " 、 " << c << "可組成三角形\n";
   	}else{
   		cout << a << "、" << b << " 、 " << c << "無法組成三角形\n"; 
	   }
 }
 
 int triangle (double a, double b, double c){
 	if ((a+b) > c &&(b+c)>a&&(a+c)>b){
 		return 1;
	 }else{
	 	  return 0;
	 }
 }
```
實作畫面:
![image](https://hackmd.io/_uploads/Sy4638uVp.png)
執行畫面:
![image](https://hackmd.io/_uploads/B1By6UOVp.png)
### 2.遞迴
程式碼:
```
//資訊一乙 康軒勻
#include<iostream>
using namespace std;

int main()
{
	void func();
	func();
 } 
 
void func()
{
   cout << "這是一種遞回函式\n";
   func();	
}
```
實作畫面:
![image](https://hackmd.io/_uploads/SJqKvn9BT.png)
執行畫面:
![image](https://hackmd.io/_uploads/BJyiwnqBp.png)
### 3.專案練習
程式碼:
```
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void game(int user);
int dice();
void func();

void p01();
void p02();
void p03();
void p04();
void p05();
void p06();
void p07();

int main() {
    string menuItem[] = {
        "[1]猜數字遊戲",
        "[2]猜拳遊戲",
        "[3]猜點數遊戲",
        "[4]查詢語音費率函式",
        "[5]階乘函式",
        "[6]組成三角形",
        "[7]遞迴",
        "[0]離開"
    };
    int i, num;
    int selMenu = 99;
    while (selMenu != 0) {
        system("chcp 950"); // 編碼
        system("cls");      // 清除畫面
        cout << "程式設計實習 資訊一乙 19 康軒勻\n";
        cout << "-----------------------------" << endl;
        int arrLength = sizeof(menuItem) / sizeof(menuItem[0]); // 讀取幾個Item
        for (i = 0; i < arrLength; i++) {
            cout << menuItem[i] << endl;
        }
        cout << "請輸入選項:";
        cin >> selMenu;
        switch (selMenu) {
            case 1:
                p01();
                break;
            case 2:
                p02();
                break;
            case 3:
                p03();
                break;
            case 4:
                p04();
                break;
            case 5:
                p05();
                break;
            case 6:
                p06();
                break;
            case 7:
                p07();
                break;
        }
        system("PAUSE");
        cout << "\n";
    }
}

void p01() {
    srand(time(0));
    int n, ans;
    ans = (rand() % 10) + 1;
    while (n != ans) {
        cout << "猜猜看數字是多少?(1~10):";
        cin >> n;
        if (n > ans)
            cout << "猜錯了,再小一點\n";
        else if (n < ans)
            cout << "猜錯了,再大一點\n";
    }
    cout << "猜對了!YA!\n";
}

void p02() {
    int user;
    srand(time(0));
    cout << "請輸入你要出的拳(1.剪刀 2.石頭 3.布):";
    cin >> user;
    game(user);
}

void game(int user) {
    int com = (rand() % 3) + 1;
    if (user == com) {
        cout << "平手";
    } else if (user == 1) {
        if (com == 2)
            cout << "你出剪刀, 電腦出石頭, 你輸了";
        else
            cout << "你出剪刀, 電腦出布, 你贏了";
    } else if (user == 2) {
        if (com == 3)
            cout << "你出石頭, 電腦出布, 你輸了";
        else
            cout << "你出石頭, 電腦出剪刀, 你贏了";
    } else if (user == 3) {
        if (com == 1)
            cout << "你出布, 電腦出剪刀, 你輸了";
        else
            cout << "你出布, 電腦出石頭, 你贏了";
    }
}

void p03() {
    srand(time(0));
    int num1, num2;
    cout << "輸入1~6其中一個數字,猜骰子點數:";
    cin >> num1;
    while (num1 != 0) {
        num2 = dice();
        cout << "骰子的點數是:" << num2 << "\n";
        if (num2 == num1)
            cout << "猜中了";
        else
            cout << "沒猜中";
        cout << ",再試一次吧!\n"
             << "輸入1~6其中一個數字,猜骰子點數(或輸入0已結束遊戲):";
        cin >> num1;
    }
}

int dice() {
    return (rand() % 6) + 1;
}

void bill(int a) {
    switch (a) {
        case 196:
            cout << "語音費率每秒:0.0869元";
            break;
        case 396:
            cout << "語音費率每秒:0.0782元";
            break;
        case 796:
            cout << "語音費率每秒:0.0696元";
            break;
        default:
            cout << "無此費率,請重新查詢!";
    }
}

void p04() {
    int a;
    cout << "請輸入要查詢的月租方案(196、396、796):";
    cin >> a;
    bill(a);
}

double factorial(int n) {
    double fact;
    for (fact = 1; n > 0; n--)
        fact = fact * n;
    return fact;
}

void p05() {
    while (true) {
        cout << "請輸入 1-170間的整數(輸入0即結束程式):";
        int num = 0;
        cin >> num;
        if (num == 0)
            break;
        cout << num << "! 等於 " << factorial(num) << endl;
    }
    cout << endl << "謝謝您使用階乘計算機。";
}

int triangle(double a, double b, double c) {
    if ((a + b) > c && (b + c) > a && (a + c) > b) {
        return 1;
    } else {
        return 0;
    }
}

void p06() {
    double a, b, c;
    cout << "請輸入三角形的三個邊長:\n";
    cin >> a;
    cin >> b;
    cin >> c;
    if (triangle(a, b, c) == 1) {
        cout << a << "、" << b << " 、 " << c << "可組成三角形\n";
    } else {
        cout << a << "、" << b << " 、 " << c << "無法組成三角形\n";
    }
}

void p07() {
    cout << "這是一種遞回函式\n";
    func();
}

void func() {
    cout << "這是一種遞回函式\n";
    p07();
}

```
實作畫面:
![image](https://hackmd.io/_uploads/Hk7vq2awT.png)
![image](https://hackmd.io/_uploads/SJVuch6Da.png)
![image](https://hackmd.io/_uploads/B1gFq2avT.png)
![image](https://hackmd.io/_uploads/HkCt92Tw6.png)
![image](https://hackmd.io/_uploads/Sk5q93pv6.png)
![image](https://hackmd.io/_uploads/Hkrj5hpDT.png)
![image](https://hackmd.io/_uploads/SyW393pv6.png)
![image](https://hackmd.io/_uploads/BysAq2pD6.png)
執行畫面:
![image](https://hackmd.io/_uploads/S19u2npwa.png)
## 心得感想(11/06)
在本次的程式設計實習中,我認為難度頗高的,因為這章節不僅僅加了許多複雜的東西,更要背許多的函式及公式,前面的程式基礎更是要好,然而,到後面只會越來越難而已,所以我們上課更該認真專心,回家後也要花些許時間複習才能跟得上.
## 心得感想(11/20)
這是老師第一次要我們做專案練習,說實話這個東西我一開始完全不會也不懂,尤其是除錯時它顯示的錯誤訊息我也根本沒看過,導致我不知道如何修改我的程式,好在老師最後有教我們怎麼做,我們才順利把它做出來.
# 20231204 課堂作業(CH7陣列與指標)
## 12/11隨堂練習
### ch07-03 請使用者輸入8個數字，找出最大值
程式碼:
```
//資訊一乙 康軒勻 
#include <iostream>
#define SIZE 8
using namespace std;

int main()
{
   int numbers[SIZE];
   
   cout << "請輸入8個數字,程式將找出最大值"<< endl;
   
   for (int i = 0; i < SIZE;i++){
   	 cout << "請輸入第" << (i+1) << "個數字:";
   	 cin >> numbers[i];
   }
   
   int MAX = numbers[0];
   
   
   for(int i = 1; i <SIZE;i++)
     if (numbers[i] > MAX)
       MAX = numbers[i];

 cout << "在輸入的數字中,數值最大的是" << MAX; 
 } 
```
實作畫面:
![image](https://hackmd.io/_uploads/H1Xxrp5Hp.png)
執行畫面:
![image](https://hackmd.io/_uploads/B1rQBa5BT.png)
###  ch07-04氣泡排序法
程式碼:
```
#include <iostream>
#define SIZE 5
using namespace std;

int main()
{
	char array[SIZE]={'r','o','g','e','r'};
	
	cout << "排序前:";
	for (int i = 0; i < SIZE; i++)
	  cout << array[i];
	  
	for (int i = 1; i <SIZE; i++)
	  for (int j = 0; j < SIZE-i; j++)
	    if (array[j] < array[j + 1])
	    {
	      char temp = array[j];
	      array[j] = array[j+1];
	      array[j+1] = temp;
		}
		
	cout << endl << "排序後:";
	for (int i = 0; i < SIZE; i++)
	  cout  << array[i];
} 
```
實作畫面:
![image](https://hackmd.io/_uploads/Hy1dS69rT.png)
執行畫面:
![image](https://hackmd.io/_uploads/B1cYHpqBT.png)
### ch07-05 選擇排序法
程式碼:
```
//資訊一乙
#include<iostream>
#define SIZE 5
using namespace std;

int main()
{
   int a[SIZE] = {25,12,47,18,10};
   int s, temp;
   
   cout << "排序前:";
   for (int i = 0;i < SIZE; i++)
     cout << a[i] << "  ";
     
   for (int i = 0; i < SIZE - 1;i++){
   	 s = i;
   	 for (int j = s + 1; j <=SIZE - 1; j++)
   	   if(a[s]> a[j])
   	     s = j;
   	     
   	 temp = a[i];
	 a[i] = a[s];
	 a[s] = temp;	    
   }	
   
   cout << endl << "排序後 :";
   for (int i = 0; i < SIZE; i++)
     cout << a[i] << "  ";
 } 
```
實作畫面:
![image](https://hackmd.io/_uploads/HkCCja5BT.png)
執行畫面:
![image](https://hackmd.io/_uploads/BJ2JnaqSa.png)
### ch07-06 循序搜尋法
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
   int data[10]={2,15,3,55,46,98,54,7,6,34};
   int num;
   cout << "請輸入要搜尋的值:";
   cin >> num;
   for(int i = 0; i < 10; i++){
   	 if(data[i]== num){
   	 	cout << "在標註" << i << "的位置找到" << num;
		return 0;	 
		}
   }
   cout << num << "不在陣列中";
 } 
```
實作畫面:![image](https://hackmd.io/_uploads/rJFu2WVIp.png)
執行畫面:![image](https://hackmd.io/_uploads/BkQ52ZELT.png)
### ch07-07 二元搜循法
程式碼:
```
#include<iostream>
using namespace std;

int main()
{
  int a[7] = {2,16,34,47,53,67,81};
  int Target, M, L = 0, R = 6;
  cout << "請輸入要搜尋的值:";
  cin >> Target;
  while(L <= R){
  	M = (L + R) / 2;
  	if(a[M]== Target){
	  
  	  cout << "在標註" << M << "的位置找到" << Target;
	  return 0; 
  } else if(a[M]> Target){
  	R= M - 1;
  }else if(a[M]< Target){
  	L = M+1;
  }
 } 
  cout << Target << "不在陣列中";
}
```
實作畫面:
![image](https://hackmd.io/_uploads/Bk2x9V6IT.png)
執行畫面:
![image](https://hackmd.io/_uploads/HyV7q4aUp.png)
## 專案練習
程式碼:
```
#include <iostream>
using namespace std;

void p01();
void p02();
void p03();
void p04();
void p05();

int main() {
    string menuItem[] = {
        "[1]請使用者輸入8個數字，找出最大值",
        "[2]氣泡排序法",
        "[3]選擇排序法",
        "[4]循序搜尋法",
        "[5]二元搜尋法",
        "[0]離開"
    };
    int i, num;
    int selMenu = 99;
    while (selMenu != 0) {
        system("chcp 950"); //編碼
        system("cls");      //清除畫面
        cout << "程式設計實習 資訊一乙 19 康軒勻\n";
        cout << "-----------------------------" << endl;
        int arrLength = sizeof(menuItem) / sizeof(menuItem[0]); //讀取幾個Item
        for (i = 0; i < arrLength; i++) {
            cout << menuItem[i] << endl;
        }
        cout << "請輸入選項:";
        cin >> selMenu;
        switch (selMenu) {
        case 1:
            p01();
            break;
        case 2:
            p02();
            break;
        case 3:
            p03();
            break;
        case 4:
            p04();
            break;
        case 5:
            p05();
            break;
        }
        system("PAUSE");
        cout << "\n";
    }
    return 0;
}
void p01() {
    int numbers[8];

    cout << "請輸入8個數字，程式將找出最大值" << endl;

    for (int i = 0; i < 8; i++) {
        cout << "請輸入第" << (i + 1) << "個數字:";
        cin >> numbers[i];
    }

    int MAX = numbers[0];

    for (int i = 1; i < 8; i++)
        if (numbers[i] > MAX)
            MAX = numbers[i];

    cout << "在輸入的數字中,數值最大的是" << MAX;
}
void p02() {
    char array[5] = {'r', 'o', 'g', 'e', 'r'};

    cout << "排序前:";
    for (int i = 0; i < 5; i++)
        cout << array[i];

    for (int i = 1; i < 5; i++)
        for (int j = 0; j < 5 - i; j++)
            if (array[j] < array[j + 1]) {
                char temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }

    cout << endl << "排序後:";
    for (int i = 0; i < 5; i++)
        cout << array[i];
}

void p03() {
    int a[5] = {25, 12, 47, 18, 10};
    int s, temp;

    cout << "排序前:";
    for (int i = 0; i < 5; i++)
        cout << a[i] << "  ";

    for (int i = 0; i < 5 - 1; i++) {
        s = i;
        for (int j = s + 1; j <= 5 - 1; j++)
            if (a[s] > a[j]) {
                s = j;
            }

        temp = a[i];
        a[i] = a[s];
        a[s] = temp;
    }

    cout << endl << "排序後 :";
    for (int i = 0; i < 5; i++)
        cout << a[i] << "  ";
}

void p04() {
    int data[10] = {2, 15, 3, 55, 46, 98, 54, 7, 6, 34};
    int num;

    cout << "請輸入要搜尋的值:";
    cin >> num;

    for (int i = 0; i < 10; i++) {
        if (data[i] == num) {
            cout << "在標註" << i << "的位置找到" << num;
            break;
        }
    }

    cout << num << "不在陣列中";
}

void p05() {
    int a[7] = {2, 16, 34, 47, 53, 67, 81};
    int Target, M, L = 0, R = 6;

    cout << "請輸入要搜尋的值:";
    cin >> Target;

    while (L <= R) {
        M = (L + R) / 2;

        if (a[M] == Target) {
            cout << "在標註" << M << "的位置找到" << Target;
            return;
        } else if (a[M] > Target) {
            R = M - 1;
        } else if (a[M] < Target) {
            L = M + 1;
        }
    }

    cout << Target << "不在陣列中";
}
```
實作畫面:
![image](https://hackmd.io/_uploads/BkEWLVwPT.png)
![image](https://hackmd.io/_uploads/HJimLVwPT.png)
![image](https://hackmd.io/_uploads/By9E8NvDT.png)
![image](https://hackmd.io/_uploads/BkTHINDwT.png)
![image](https://hackmd.io/_uploads/HJKUINPwT.png)
![image](https://hackmd.io/_uploads/SJ7tL4vPT.png)
執行畫面:
![image](https://hackmd.io/_uploads/B1moI4PvT.png)

## 心得感想(100字)(12/11)
心得:
這次的程式設計實習中,不僅僅加了陣列這個新元素,還有許多以前教過的東西,例如:while迴圈、if條件判斷、運算子運算式、函式等,使這單元增加了許多難度,這告訴我,我不僅要溫故,更要知新,才有辦法跟上課程,否則最後只會越來越跟不上.
## 12/18 隨堂練習
### Ch07-08 輸出字串與字元陣列大小
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
  char name1[]="john smith";
  char name2[]={'J','O','H','N',' ','S','M','I','T','H'};
  
  cout << "name1[]大小為:" << sizeof(name1) << endl;
  cout << "name2[]大小為:" << sizeof(name2) << endl;
  
  cout << "name1[]:" << name1 << endl;
  cout << "name2[]:" << name2 << endl; 
}
```
實作畫面:
![image](https://hackmd.io/_uploads/SJsVeS6L6.png)
執行畫面:
![image](https://hackmd.io/_uploads/SkCHgra8T.png)
### Ch07-27 以指標實作氣泡排序法
程式碼:
```
#include <iostream>
using namespace std;

int main()
{
  int num;
  cout << "請輸入欲排序的數字數量:";
  cin >> num;
  
  int *ptr = new int[num];
  
  for(int i = 0; i < num; i++){
  	cout << "請輸入第" << i+1 << "個數字:";
	cin >> *(ptr+i); 
  }
  for(int i =1; i < num; i++)
    for(int j = 0; j < num; j++)
      if(*(ptr+j)<*(ptr+j+1)){
      	char temp = *(ptr+j);
		*(ptr+j) = *(ptr+j+1);
		*(ptr+j+1) = temp; 
	  }
   cout << "排序後: ";
   
   for(int i = 0; i < num; i++)
     cout << *(ptr+i)<< '\t';
   delete[]ptr;	  
}
```
## ch7 課後練習(12/18)
### 1.大樂透539是一種樂透型遊戲:
程式碼:
```
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
int main(){
    int a[5];
    int y=0;
    srand(time(0));
    int num ,i = 0;
    int n[5];
    while(i<5){
         num = (rand() % 39) +1;
         n[i] = num;
         for(int j = 0; j<=i-1; j++){
             if(n[j] == num)
             i = i-1;
         }
    i++;}
    cout << "請選擇六個號碼（範圍01~39）：" << endl;
    for (int i = 0; i < 6; ++i) {
        cout << "號碼 " << i + 1 << ": ";
        cin >> a[i];
    }for(int i=0;i<6;i++){
        for(int j=0;j<6;j++){
            if(a[i]==n[j]){
            y++;
        }
    }
    }cout << "本期彩票號碼:";
    for(int i = 0; i < 5; i++){
        cout << n[i] << " ";}
    cout<<"中了"<<y<<"個,"; 
    if(y==3){
        cout<<"恭喜獲得普獎"; 
    }else if(y==4){
        cout<<"恭喜獲得伍獎";
    }else if(y==5){
        cout<<"恭喜獲得仨獎";
    }else if(y==6){
        cout<<"恭喜獲得頭獎";
    }
} 

```
實作畫面:
![image](https://hackmd.io/_uploads/SynQyD8v6.png)
執行畫面:
![image](https://hackmd.io/_uploads/SkXDJwLPa.png)
### 2.奇數或偶數:使用亂數函數 rand() 產生 5個1~20的整數，分別對奇數的數加總以及偶數的數加總
程式碼:
```
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main() {
    srand(static_cast<unsigned int>(time(0)));

    int numbers[5], oddSum = 0, evenSum = 0;
    
    cout << "亂數:";
    for (int i = 0; i < 5; ++i) {
        numbers[i] = rand() % 20 + 1;
        cout << numbers[i] << " ";

        (numbers[i] % 2 != 0) ? oddSum += numbers[i] : evenSum += numbers[i];
    }

    cout << "\n奇數加總:" << oddSum << "\n";
    cout << "偶數加總:" << evenSum << "\n";

    return 0;
}

```
實作畫面:
![image](https://hackmd.io/_uploads/rkM6jdUvp.png)
執行畫面:
![image](https://hackmd.io/_uploads/Bk70su8Dp.png)
### 3.在「字元陣列」中放入10個英文字母「television」，然後將字母依小到大（a到z）順序從螢幕輸出
程式碼:
```
#include<iostream>
#include<algorithm>
using namespace std;

int main(){
	char charArray[] = "television";
	
	sort(charArray, charArray+10);
	
	cout << "排序後的字元陣列:"<< charArray << endl;
	
	return 0;
} 
```
實作畫面:
![image](https://hackmd.io/_uploads/ByoVlF8D6.png)
執行畫面:
![image](https://hackmd.io/_uploads/HkZUxKID6.png)
## 心得感想(100字)(12/18):
心得:這次的課程中,老師給我們許多的課後練習,要我們自己思考如何做出老師給的程式,幸好課本上都找的到相關的答案,除了樂透那題以外都可以輕鬆解決,樂透那題,需要使用較多且複雜的迴圈和if、else if,還要用到以前教過的亂數函式,就可以把它做出來了.
## ch7 課後練習(2023/12/25):
### 1.請使用二維陣列存取學生的多科成績，並輸出班級成績單
程式碼:
```
#include <iostream>
using namespace std;

int main() {
    int stu;
    cout << "輸入幾位學生:";
    cin >> stu;

    int score[stu][5];

    cout << "輸入每位學生的成績(依序為國、英、數、基電、物理，以空格區隔)\n";
    for (int i = 0; i < stu; i++) {
        cout << i + 1 << "號學生:";
        for (int j = 0; j < 5; j++) {
            cin >> score[i][j];
        }
    }

    cout << "班級成績單\n";
    cout << "座號\t國文\t英文\t數學\t基電\t物理\t總分\n";
    cout << "=======================================\n";

    for (int i = 0; i < stu; i++) {
        cout << i + 1 << "\t";
        int sum = 0; 
        for (int j = 0; j < 5; j++) {
            cout << score[i][j] << "\t";
            sum += score[i][j];
        }
        cout << sum << endl; 
    }

    return 0;
}

```
實作畫面:
![image](https://hackmd.io/_uploads/Hy3KzOUvp.png)
執行畫面:
![image](https://hackmd.io/_uploads/H1bIjDUwp.png)
### 2.
程式碼:
```
#include <iostream>
using namespace std;
int main(){
	cout<<"根據使用者輸入的數值設定表格大小（先輸入列，再輸入行）";
	int row,col;
	cin>>row>>col;
	int iArray[row][col];
	cout<<"請輸入數值填滿表格\n";
	
	for(int i=0;i<row;i++){
		for(int j=0;j<col;j++)
		{
			cin>>iArray[i][j];
			}
	}
		for(int i=0;i<row;i++){
		for(int j=0;j<col;j++)
		{
			cout<<"iArray["<<i<<"]["<<j<<"]="<<iArray[i][j]<<endl;
			}
	}
 
} 
```
實作畫面:
![image](https://hackmd.io/_uploads/H19h4XvDT.png)
執行畫面:
![image](https://hackmd.io/_uploads/ByRSB7DwT.png)
### 3.
程式碼:
```
#include <iostream>
using namespace std;
int main(){
int a[5],sum;
for(int i=0;i<5;i++){
	    cout<<"數值"<<i+1<<":";
		cin>>a[i];
		sum+=a[i]; 
}
cout<<"總和:"<<sum; 
}
```
實作畫面:![image](https://hackmd.io/_uploads/BkQNf_Iv6.png)
執行畫面:![image](https://hackmd.io/_uploads/H1IIz_8PT.png)
### 4.
程式碼:
```
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
	    cout<<"請輸入五個數值:";
	    int *p = new int[5];
	    for(int i = 0;i<5;i++){
	    	    cin>>p[i];
		}
		cout<<"指數變數p所指向的記憶起點:"<<p<<endl;
		sort(p,p+5);
		cout<<"最大值為"<<p[4]<<endl;;
		int *a = new int(p[4]);
		cout<<"最大值的記憶體位址:"<<a<<endl;
		delete[] p; 
}
```
實作畫面:
![image](https://hackmd.io/_uploads/SktvIu8Da.png)
執行畫面:
![image](https://hackmd.io/_uploads/r1u2LOLDT.png)
