C++语言——求圆柱表面积
時(shí)間限制:?1 Sec??內(nèi)存限制:?128 MB
題目描述
已知圖圓柱體的高為h,底面圓的半徑為r,求圓柱體表面積。(h,r都為正整數(shù),表面積保留兩位小數(shù))
輸入
一行,兩個正整數(shù)用空格隔開,分別表示圓柱體的高h(yuǎn)和底面圓的半徑r。?????
輸出
一行,表示圓柱的表面積保留兩位小數(shù)。
樣例輸入
2 2樣例輸出
50.27提示
保留兩位小數(shù)可以使用
printf("%.2f",?sample);?
在C++中,是沒有格式符的,我們可以通過使用setprecision()函數(shù)來實(shí)現(xiàn)這個需求。
想要使用setprecision()函數(shù),必須包含頭文件#include <iomanip>。
使用方式如下:
cout << "a=" << setprecision(2) << a <<endl;
這時(shí)候,我們會發(fā)現(xiàn),如果a的值為0.20001,輸出的結(jié)果為a=0.2,后面第二位的0被省略了。
如果我們想要讓它自動補(bǔ)0,需要在cout之前進(jìn)行補(bǔ)0的定義。
代碼如下:
?
這樣,我們就可以得到0.20了。
cout.unsetf(ios::fixed); ?cout << "a=" <<?setprecision(2)?<< a <<endl; //輸出a=0.2 ?
我們的輸出結(jié)果就又變回a=0.2了。
當(dāng)然,如果想要關(guān)閉掉補(bǔ)0,只需要對fixed進(jìn)行取消設(shè)置操作。
#include?<iostream>?? #include?<iomanip>?? using?namespace?std;?? int?main()?? {??float?a?=?0.20001;??cout.setf(ios::fixed);??cout?<<?"a="?<<fixed<<?setprecision(2)?<<?a?<<endl;?//輸出結(jié)果為a=0.20??cout.unsetf(ios::fixed);??cout?<<?"a="?<<?setprecision(2)?<<?a?<<endl;?//輸出結(jié)果為a=0.2??return?0;?? } ?當(dāng)然,很我時(shí)候我們可以這樣寫
cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;
setiosflags(ios::fixed)表示設(shè)置固定小數(shù)位數(shù)。
參考代碼
#include <iostream> #include <iomanip> #include<cmath> using namespace std; int main() { double pi=3.1415926,h,r,s1,s2,S; cin>>h>>r; s1=pi*r*2*h; s2=pi*pow(r,2); S=2*s2+s1; cout<<fixed<<setprecision(2)<<S<<endl; return 0; }總結(jié)
以上是生活随笔為你收集整理的C++语言——求圆柱表面积的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mvc中简单从controll传递数据到
- 下一篇: C++书籍