【愿成其身】[8]实数的运用 – 整数化作的实数

本篇文章讲解题目:愿成其身A÷B

推荐先独立进行解题尝试,然后再阅读本篇讲解!


我们知道C语言中用"/“来表示相除,整数的除法是采用的舍尾的方式。

$5 \div 2 = 2 \ldots \ldots 1$

$5 / 2 = 2$

所以对于这一题来说,题目要求输出A÷B的结果并保留到整数位。

如果写成A/B,A,B都是整数的话,那么会得出结果的整数部分,小数部分会被舍弃,而这一题应该四舍五入。

所以如下面代码是错误的。

1
2
3
4
5
6
7
#include<stdio.h>
int main() {
	int A,B;
	scanf("%d %d",&A,&B);
	printf("%d\n",A/B);
	return 0;
}

为了表示小数,我们可以使用double(float因为精度问题一般不使用)。

提到了精度问题,请百度double的注意事项,应重点关注double的表示范围与计算误差。

在这里暂时不对这一问题进行深入研究。


声明一个double型变量依旧类似。

1
double a;

在格式化输入输出里用%lf表示(有些标准对于有些情况使用%f,但一般统一写作%lf)。

那么如何表示精确到整数呢?

我们可以使用printf(”%.lf\n",a);

可以注意到在%与lf中间加了一个点,这个便表示四舍五入到整数输出。


这也是格式化输出的一种运用,在后面会再细讲。

类似的还有:

printf("%.2lf\n",a); 四舍五入到小数点后两位数字输出。

printf("%.3lf\n",a); 四舍五入到小数点后三位数字输出。

等等……


还有一点需要注意:

此题的的输入数据描述,由两个整数变为了两个数。

所以输入数据有可能为小数,这个时候便不可以用整数来读取。

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

最后更新于 2016-08-22 16:00:47

加载中...