/*
1 + 1/2 + 1/3 + …… + 1/100
*/
#include<stdio.h>
int main(void)
{
int i;
float sum = 0;
for(i = 1; i <= 100; i++)
{
sum += 1/(float)(i); // 更简单的写法为:sum += 1.0/i
// sum += (float)(1/i),这样写是不对的
}
printf("sum = %f\n", sum);
return 0;
}
// 运行结果
/*
sum = 5.187378
请按任意键继续. . .
*/
【强制类型转化】
把表达式的值强制转化为前面所执行的数据类型。
(数据类型)(表达式)
| (int)(4.2 + 2.7) | 6 |
| (float)(5) | 5.000000 |
【浮点数的存储所带来的问题】
float和double都不能保证可以精确地存储一个小数。因此循环中更新的变量不能定义为浮点型。
有一个浮点型变量x,如何判断x的值是否为零?
if(|x - 0.000001| <= 0.000001)
是;
else
不是;
本文介绍了C语言中如何计算1到100的倒数之和,强调了在处理浮点数时的精度问题,并提供了一种判断浮点数近似等于零的方法。
1万+

被折叠的 条评论
为什么被折叠?



