开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 21 天,点击查看活动详情
再分肥宅水
例2-8 再分肥宅水(洛谷 P5706)。
现在有 毫升肥宅快乐水,要均分给 名同学。每名同学需要两个杯子。想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子。输人一个实数 和一个整数 ,使用空格隔开。输出两个数字表示答案使用换行隔开。
代码如下:
#include <cstdio>
using namespace std;
int main() {
double t;
int n;
scanf("%lf%d", &t, &n);
printf("%.3f\n%d", t / n, n * 2);
return 0;
}
运行结果:
1000
3
333.333
6
记录:
- 在
scanf()函数中,%lf表示接收一个double类型的占位符,而%d则表示接收一个int类型的占位符;此时,计算机就会期望读取到"[一个浮点数][一个整数]"这样格式的输入数据。注意,这两个数需要被分隔开(空格或换行)才能被正确读入。 - 在
printf()函数中,该函数会输出格式为"[保留到小数点后3位的数字][换行符][整数]"的字符串。这里第一个占位符的数据由t / n提供,第二个占位符的数据由n * 2提供。如果\n包含在一个字符串里面,则表示一个换行符。
一般来说,输出
double或者float都应该使用%f
当然,我们也可以使用 cout 来输出数据,只要配合 fixed 和 setprecision() 就可以达到保留指定位数小数的效果。
一般来说,使用
scanf()读入同样数据的速度要快于cin,特别是当数据量足够多时(百万级别),此时差距会相当明显。
小鱼的游泳时间
题目描述:
伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。
这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 小时制计算),它发现自己从 时 分一直游泳到当天的 时 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?
小鱼游的好辛苦呀,你可不要算错了哦。
- 输入格式
一行内输入四个整数,以空格隔开,分别表示题目中的 。
- 输出格式
一行内输出两个整数 和 ,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示分钟的整数 应该小于 。
- 样例输入
12 50 19 10
- 样例输出
6 20
- 提示
对于全部测试数据,,,且结束时间一定晚于开始时间。
- 解题代码如下:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c, d, e, f, interval;
scanf("%d%d%d%d", &a, &b, &c, &d);
interval = (60*c+d) - (60*a+b);
e = interval / 60;
f = interval % 60;
printf("%d %d", e, f);
return 0;
}