HDU1170做题笔记

HDU1170


…这是一篇废话博文
题目链接

【前提】
是这样的,明明是到很水的题,但是还是来写个笔记吧。原因是因为WA的n次之后,实在是怀疑人生,于是就去找了别人的代码来看,看完之后,发现感觉明明都一样,但是仍然不知道自己错在哪里。
因为我一开始学的就是c++,所以也是用c++的方式来处理,找了另一个自称是AC的c++代码后,提交到hdu后,和我一样都是WA了。
比较了一下共同点之后,才发现我们处理小数点的时候都是使用了
cout<<fixed<<setprecision(2)这样一样内容。
然后又去看了用printf("%.2f", (float)a / b);的c代码,试着提交了一下,发现对了= =。

所以写这篇笔记打算开一下c语言的输入输出吧,也不是第一次冒出这个念头了,感觉scanfprintf确实好用。下篇(如果有的话)就总结一下。

【总结】
虽然代码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;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值