1. 程式人生 > 其它 >【C++基礎教程】第三課

【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;
}