题号: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!