/*
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都不能保证可以精确地存储一个小数。因此循环中更新的变量