【前提】
是这样的,明明是到很水的题,但是还是来写个笔记吧。原因是因为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;
}
}