# 第一章、輸出輸入以及變數和常用語法 在一開始要先知道 :::success **1.程式碼在任何一個凾式內都是由上到下,由左到右執行** **2.分號(;)是代表一句話的結束。** **3.在一句話內,除了字串以外,空格和換行(enter)都是可以被忽視的** ::: ## 宣告 宣告就是告訴電腦我需要一個甚麼樣的變數 其中"="可以視為後者指定給前者 :::spoiler **甚麼是變數** 變數其實就是可以"變"動的一個"數"字。 ::: 通用語法為 :::success [型態] (名字)=(初始值); ::: :::info **"//"表示註解,代表為可以省略的東西,常作用於解釋程式碼** ::: 宣告一個整數a來說 ```cpp= int a=3;//3指定給a ``` **注意:每一個語句的結尾都需要加上一個分號,可以把分號想成是句點** 常用型態有下面七種(未來會更多) | 型態 | 內容 | |:------------------------------:|:-----------------------------------------------------------------------------------------:| | int | 一個整數,範圍為$2^{31} \text{~}2^{-31}$| | long long int(宣告時可省略int) | 一個整數,但運算時稍慢於int,範圍為$2^{63} \text{~}2^{-63}$| | | float | 一個小數(浮點數)範圍,在APCS因為有精度,觀念題較常出現,實作題偏少 | | double | 一個小數,但比float可以裝更長的小數,在APCS因為有精度,觀念題較常出現,實作題偏少 | | bool | 一個布林值,只會有0(false)或1(true) | | char | 字元,例如'a' | | string | 字串,例如"Emotional Damage" | :::danger 我們以' '表示字元," "表示字串 ::: :::spoiler **字元?字串?** 字元為一個字,當一或多個字元串在一起,就是字串。 這個字元不一定是英文,也可能是數字或符號。 ::: :::spoiler **精度問題** [為什麼精度問題難以避免](https://medium.com/starbugs/see-why-floating-point-error-can-not-be-avoided-from-ieee-754-809720b32175) 簡單來說為了節省記憶體,所以小數在運算時會是一個近似值。 ::: ## 輸出輸入 C++的輸出輸入是不需要處理型態的,因為在宣告的時候就已經告訴電腦了 ## 輸出 ```cpp= cout<<"字串"<<endl; cout<<'字元'<<"\n"; //endl表示換行,並清除緩衝區 //"\n"表示換行,不清除緩衝區(速度較快) ``` ### 輸入 ```cpp= int a;//宣告 cin>>a;//讀入 ``` :::danger 注意!! ```cpp= cin>>a,b; cout<<a,b<<endl; ``` 是錯誤的語法,正確應該是 ```cpp= cin>>a>>b; cout<<a<<b<<endl; ``` ::: ### 例題 :::info 例題:[ T01 Hello, a6](https://cc.cysh.cy.edu.tw/problem/T01) 步驟1:宣告一個字串 步驟2:輸入一個字串 步驟3:處理並輸出一個字串 ```cpp= #include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; cout << "Hello, " << s << endl; } ``` ::: ## 常用語法 其實就是一些我不知道放哪裡才好的語法 ### 四捨五入&&轉換型態 對a做四捨五入n位 語法 :::success cout<<fixed<<setprecision(n)<<a; ::: 當今天我想把一個型態轉成另一個型態(例如int->float),會用這個語法 :::success (想轉換的型態)[原本的變數或數字] ::: 範例程式 ```cpp= #include <bits/stdc++.h> using namespace std; signed main() { int a=4; cout<<fixed<<setprecision(4)<<(float)a;//output:4.0000 } ``` ### #define :::danger 這個語法必須放在int main()的上面 ::: 為了後續可能會用到的重複語法,所以我們會把重複性高而且要打很多個字的語法來節省時間 語法為 :::success #define [名字] [你想定義的東西] ::: 範例程式 ```cpp= #include <bits/stdc++.h> #define ll long long using namespace std; signed main() { ll a; cin>>a; cout<<a<<endl; } ``` ### return (補充) 可以看到程式碼後面可能有 ```cpp= return 0; ``` 這行是告訴main程式結束,但整個執行完他也會停
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up