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

/ 0评 / 0

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

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


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

5 \div 2 = 2 \ldots \ldots 1

5 / 2 = 1

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

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

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

#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型变量依旧类似。

	double a;

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

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

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

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


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

类似的还有:

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

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

等等……


还有一点需要注意:

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

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

发表评论

邮箱地址不会被公开。 必填项已用*标注