【C++基礎教程】第三課
上次的課後練習答案
練習一
第一題a=8
第二題8
第三題(int)(a+0.2)
提示:把浮點數轉換為整數,用強制型別轉換的方式。(int)(...)表示把...的內容強制轉換為int型別,同理,(float)(...)表示強制轉換為float型別。
練習二
第一題輸出:
1 2
3 3
第二題
第一空10 第二空10 第三空100
提示:數位分離的做法,最後一位就是數除以10的餘數,十位就是先除以10然後取餘10,百位就是直接除以100。可以自己驗證一下。
一,輸入語句
【題目】從鍵盤輸入一個數,輸出這個數的相反數。
分析:我們可以用輸入語句來從鍵盤輸入資料。
輸入語句的基本格式如下:
cin>>表示式1>>表示式2>>...>>表示式n;
輸入語句中,用>>連線的表示式必須是變數。例如,我們執行如下的程式段:
#include<iostream> using namespace std; int main(){ int n; cin>>n; cout<<-n; return 0; }
執行這段程式時,程式會進入“等待輸入”的狀態,游標在不斷閃動。此時,使用者就可以從鍵盤輸入資料了。
輸入資料後,按下回車鍵,系統就會輸出它的相反數。
【例題】傳送門http://noi.openjudge.cn/ch0101/02/。輸入三個整數,把第二個輸入的整數輸出。
提示:我們可以定義三個變數,分別存放三個要求輸入的整數。
#include<iostream> using namespace std; int main(){ int a,b,c; cin>>a>>b>>c; cout<<b; return 0; }
【例題】傳送門http://noi.openjudge.cn/ch0101/04/。保留3位小數輸出一個浮點數。
提示:用“cout<<fixed<<setprecision(x)<<變數”輸出保留x位小數的浮點數。
我們定義一個變數,然後通過上述的輸出格式控制語句fixed<<setprecision來保留小數位數進行輸出。
#include<iostream> #include<iomanip>//注意使用setprecision需要引用這個庫!!! using namespace std; int main(){ float x; cin>>x; cout<<fixed<<setprecision(3)<<x; return 0; }
補充閱讀:
cin的輸入語句是按照換行符和空格作為讀入的分隔符的。例如:cin>>a>>b;
我們在控制檯這樣輸入:
1 2
也可以這樣輸入:
1
2
結果都是一樣的。
二,課後練習
1,閱讀程式寫結果。(http://noi.openjudge.cn/ch0101/08/)
#include<iostream> using namespace std; char a; int main(){ cin>>a; cout<<" "<<a<<endl; cout<<" "<<a<<a<<a<<endl; cout<<a<<a<<a<<a<<a<<endl; return 0; }
輸入:x
輸出:
2,閱讀程式寫結果。
#include<iostream> using namespace std; int main(){ int a,b,c,d; cin>>a>>b>>c; d=a+b; cout<<d/c; return 0; }
輸入:1 2 3
輸出:
3,完善程式:
一個人買了一箱n個蘋果,很不幸的是買完時箱子裡混進了一條蟲子。蟲子每x小時能吃掉一個蘋果,假設蟲子在吃完一個蘋果之前不會吃另一個,那麼經過y小時還有多少個完整的蘋果?
提示:ceil(a)表示a向上取整的值,使用時需要包含cmath庫。
#include<iostream> #include<cmath> using namespace std; int main(){ double n,x,y; cin>> _1_ >> _2_ >> _3_; cout << n - _4_ ( _5_ / x); return 0; }