# 基本架構
```cpp=1
#include <iostream>
#include <cstdio> //使用c語言的標準輸入頭檔
using namespace std;
int main()
{
int a, b, c; //宣告3個整數變數
scanf("%d%d%d", &a, &b, &c);
int min=a;
if (b<min) min=b;
if (b<min) min=c;
printf("%d,%d,%d %d\n", a, b, c, min);
return 0;
}
```
## 標頭檔
1. 屬於前置處理(pre-processor)指令部分
2. 以 # 開頭的指令,結尾不用加上 ;
-例如: #include <iosream>
5.在c++中可使用c的標頭檔,兩種可以混和
-如: #include <cstdio>
## 基本資料型態
:::success
資料型態(Data Type):表示占用電腦的記憶體空間的大小
:::
1. char: lbyte,表示電腦的字元(aA~zZ, 0~9)等字元。
2. bool: lbyte(c語言沒此資料型態),用來表示頁(true)與假(false)
-<font color=red>** true: 非的整數**</font>
- <font color=blue>**false: 數字0**</font>
3. int: 4bytes 表示沒有小數點的數字
4. float: 4bytes,表示有小數點的數字
5. double: Bbytes 表示沒小數點的數字
:::success
整數的延伸資料型態
:::
1. short int: 2bytes的盤對
2. Long long: Bbytes的整數
3. unsinged: 只表示正整数

:::success
sizeof(資料型態):取得資料占用型態的記憶體空間
:::
```
#include <bits/stdc++.h>
using namespace std;
int main()
{
printf("char: %d byte\n", sizeof(char));
printf("unsigned char: %d byte\n", sizeof(unsigned char));
printf("bool: %d byte\n", sizeof(bool));
printf("short: %d byte\n", sizeof(short));
printf("int: %d byte\n", sizeof(int));
printf("Long long: %d byteln", sizeof(long long));
printf("unsigned short: 3d bytein", sizeof(unsigned short));
printf("unsigned int: ad bytein", sizeof(unsigned inc));
float f=1.45;
printf("float: %d byte \n", sizeof(float));
printf("%.2f: %d byte\n", f, sizeof(f));
printf("double: %d byte\n", sizeof(double));
// 預設有小樹的數字型態為 double
printf("2.5: %d byte \n", sizeof (2.5));
printf("Long double: %d byte\n", sizeof(long double));
return 0;
}
```
```
int: 4
unsigned
```
# 字面值(常數值)
:::success
字元與字串
:::
1.字元: 一個字,以單引號包起來。例如:'a' 'd'.......
2.字元: 一個字,以單引號包起來。例如:'abc' 'adad'.......
:::success
整數: 沒有小數點的數字
:::
1. 10進制的數字:由數字$e\sim 9所組成,例如:55,66,77,88......等
2. 8進制的數字:由數字$e\sim 7$所組成,例如:655,056,612......等,以數字8開頭
3.16進制的數字:由數字$e\sim 9 英文$a\sim f 或A\sim F$所組成,例如:6x55, 6xab,(6x15......等,以數字0x開頭
-數字 10(a), 11(b), 12(c), 13(d), 14(e), 15(f) - $a\sim f$大小寫皆可(不區分)
4.10進制的數字後面加上L或l:代表為 long型態的整數,例如:55881,5588L
4.10進制的數字後面加上U或u:代表為 unsigned型態的整數,例如:5588u,5588U
5. 10進制的數字後面加上U或u:代表為 unsigned 型態的整數,例如:55880, 5588U
:::success
2, 8, 16進位轉換方式
:::
1. 短除法

2.拼湊法)

:::success
浮點數:有小數點的数学
:::
1. 科學記號: 格式為xEn
-x: 整數部分只能有1位數
2. 例如: 16668966555124 = 1.6668966555124e+13
3. 例如: 8.00016568 - 1.6668966555124e-13
2. float後面加上
3. long double 後面加上L或1:55.681
C/C++的輸出入:C語言的輸出入速度比C++快很多
:::
C輸入: scanf("輸入格式", &變數名稱,...);
輸入格式 %d:輸入整數數字
輸入格式 %f:輸入 float小數數字
輸入格式 $lf:輸入 double小數數字
輸入格式 %c: 輸入, 字元、
輸入格式 s: 輸入 字串
C++輸入: cin>>變數名稱:
C輸出: printf("輸出格式", 變數名稱...
輸出格式(d:輸出整數數字
輸出格式(c:輸出 字元
輸出格式s: 輸出 字串
輸入格式者,nf; 輸出小數點位的小數數字
```cpp=1
```
using namespace std;
int main()
{
// 宣告儲存使用者輸入的3個整數
int a,b,c;
// 讓使用者輸入3個整數的值,分別存入a,b,c中
scanf("%d %d %d", &a, &b, &c);
// 計算總和
int sum = a+b+c;
// 計算平均值
float avg =sum/3;
//輸出結果
printf("sum = %d+%d+%d %d\n", a, b, c, sum);
printf("avg = (%d+%d+%d) / 3 = %.2f\n", a, b, c, avg);
return 0;
}
```
# 變數、常數宣告
:::success
變數宣告:資料型態 變數名稱[值];
:::
1.位(Overflow):表示的值太大以致資料型態的最大空間無法儲存,造成資料的損失。
2.一次宣告多個同值型態的變數,每個變數以逗點分隔,例如int a,b,c,d;
3.變數命名方式
第一個字: $A\sim Z$, $a\sim z及(底線) 共53個字元/
第二個字以後;包含所有第一個字及$e\sim 99,共63個字元
不可為C/C++系統保留字
:::success
常數宣告:宣告後要給值,程式執行過程中不能改變常數的值。
:::
1. 語法: const 資料型態 常數名稱=位;
2. 語法: #define 常數名稱(值) 後面不加分號
3. const double PI=3.14159;
4. #define PI 3.14159
5.常數名稱命名方式與變數一樣,為了區分常数名稱全部以大寫表示
# 資料型態轉換
:::success
只有小空間可以轉換成大空間的型態
char → short → int→float+double
:::
1. 強制轉型語法:(要轉換的資料型態)變數名稱|值;
2. 例如: (double)sum/3; 将sum號為double型態後除以3