C++洛谷题解(6)
题号:P5706
 题名:再分肥宅水
 题目:现在有 t 毫升肥宅快乐水,要均分给 n 名同学。每名同学需要 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子。输入一个实数 t 和一个整数 n,使用空格隔开。输出两个数字表示答案,使用换行隔开。
 说明:0≤t≤10000且不超过3位小数,1\leq n\leq 10001≤n≤1000
这道题在难度上并不大,但这道题需要引入一个新的库--------iomanip。
 这个库不用太多说,只说最重要的两个函数,setprecision和fixed。这两个都是iomanip里面的函数,主要用来精准到几位小数,具体使用格式如下(最常用的一种写法):
cout<<fixed<<setprecision(2)<<a<<endl;
 
setprecision()括号里面的数字是你要精准到几位小数的位数。后面的那个a是你的变量,最好用double类型储存。
 知道上面的内容之后再来看这道题就相对简单了,直接上AC 代码:
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
	double t;//声明一个浮点型变量t,也可以说是小数或者实数
	int n;
	cin>>t>>n;//输入
	t=t/n;//运算
	n=n*2;//运算,too
	cout<<fixed<<setprecision(3)<<t<<endl;//上面刚刚说的保留小数位数
	cout<<n;//输出另外一个变量
    return 0;
}
 
在这里还提供一个比上面简单的方法保留小数,用printf,具体代码如下:
#include<bits/stdc++.h>//因为这是C语言的函数,所以用了万能头
using namespace std;
int main(){
	double t;
	int n;
	scanf("%lf%d",t,n);//C语言的输入
	printf("%.3lf",t/n);//C语言的输出,保留小数就是 %.位数lf
	printf("%d\n",n);//C语言的输出
	return 0;
}
 
上面的代码是C语言,在保留小数这里C语言比C++语言方便多了。
Good bye!

                
            
        
浙公网安备 33010602011771号