#P5706. 【深基2.例8】再分肥宅水
【深基2.例8】再分肥宅水
【深基2.例8】再分肥宅水
题目来源
洛谷 P5706
题目描述
现在有 毫升肥宅快乐水,要均分给 名同学。每名同学需要 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 位),以及一共需要多少个杯子。
输入格式
输入一个实数 和一个正整数 ,使用空格隔开。
输出格式
输出两行。
第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。
样例输入
500.0 3
样例输出
166.667
6
提示
一、一行里读不同类型的数据
格式串按输入顺序写占位符,变量也按同样顺序排:
double v;
int n;
scanf("%lf%d", &v, &n); // 先读一个 double,再读一个 int
输入 500.0 3 → v = 500.0,n = 3。
二、三样东西必须一一对齐
| 位置 | 第 1 个 | 第 2 个 |
|---|---|---|
| 格式串 | %lf |
%d |
| 变量 | v(double) |
n(int) |
| 输入 | 500.0 |
3 |
顺序写反、类型写错,读进来的就是垃圾值。
三、常见错误
double用%d读 → 只读到整数部分,后面的全乱。int用%lf读 → 越界写入,变量被踩坏。- 变量顺序和格式串顺序不一致。
- 忘了
&。
四、自检
读完先原样打印一遍:printf("%.2f %d\n", v, n);。如果打印出来的不是输入里的数,就是格式串或顺序错了,不用往下算。
- 先确定两个输入各是什么类型,再按顺序写格式串。
- 第一问是除法,注意参与除法的数里有没有小数;第二问是「每人 2 个杯子」,纯整数乘法。
- 输出分两行,第一行三位小数,第二行整数。
自查:样例
500.0 3可以用来核对;如果第一行是整数,说明除法走了整除。