【前提】
是這樣的,明明是到很水的題,但是還是來寫個筆記吧。原因是因爲WA的n次之後,實在是懷疑人生,於是就去找了別人的程式碼來看,看完之後,發現感覺明明都一樣,但是仍然不知道自己錯在哪裏。
因爲我一開始學的就是c++,所以也是用c++的方式來處理,找了另一個自稱是AC的c++程式碼後,提交到hdu後,和我一樣都是WA了。
比較了一下共同點之後,才發現我們處理小數點的時候都是使用了
cout<<fixed<<setprecision(2)
這樣一樣內容。
然後又去看了用printf("%.2f", (float)a / b);
的c程式碼,試着提交了一下,發現對了= =。
所以寫這篇筆記打算開一下c語言的輸入輸出吧,也不是第一次冒出這個念頭了,感覺scanf
和printf
確實好用。下篇(如果有的話)就總結一下。
【總結】
雖然程式碼WA了,還是複習了一下如何設定輸出到小數點後幾位的方法,所以這裏記錄下。
函數原型
#include <iomanip>
#include <math.h>
cout<<fixed<<setprecision(n)<<sum<<endl;
說明
setprecision(n) 中n確定了固定到小數點後第幾位。
【程式碼】
最後貼一下我自己的WA程式碼【狗頭】,答案應該是沒有錯的
如果有路過的大佬看到的話,請麻煩教教我錯哪裏了QAQ
#include<bits/stdc++.h>
using namespace std;
void getResult(char ch,int a,int b)
{
if(ch=='+')
cout<<a+b;
if(ch=='-')
cout<<a-b;
if(ch=='*')
cout<<a*b;
if(ch=='/')
{
if(a%b==0)
cout<<a/b;
else
cout<<fixed<<setprecision(2)<<(float)a/b;
}
}
int main()
{
int n,a,b;
char ch;
cin>>n;
while(n--)
{
cin>>ch;
cin>>a>>b;
getResult(ch,a,b);
cout<<endl;
}
}