for循环的四个作业题:
1. 求1到100的奇数之和
2. 求1到100的奇数的个数
3. 求1到100的奇数的平均值
4. 求1到100的偶数的和
/* 示例代码 for循环的四个作业题 **
* 时间 2015-7-29 19:48 **/
# include <stdio.h>
int main()
{
int i;
int sum1 = 0;
int sum2 = 0;
int count = 0;
for (i = 1; i <= 100; i++)
{
if (i % 2 == 1)
{
sum1 = sum1 + i;
count++;
}
else
{
sum2 = sum2 + i;
}
}
printf("所有奇数的和为: %d\n", sum1);
printf("所有奇数的个数为: %d\n", count);
printf("所有奇数的平均值为: %.3f\n", (float)(sum1/count)); //%.3f是保留小数点后三位
printf("所有偶数的和为: %d\n", sum2);
system("pause");
return 0;
}
/*
结果分析:
--------------------------
所有奇数的和为: 2500
所有奇数的个数为: 50
所有奇数的平均值为: 50.000
所有偶数的和为: 2550
请按任意键继续. . .
--------------------------
*/
/* 示例代码 求1+1/2+1/3....+1/100的和 **
* 时间 2015-7-29 20:48 **/
# include <stdio.h>
int main()
{
int i;
float sum1 = 0;
int sum2 = 0;
float sum3 = 0;
float sum4 = 0;
for (i = 1; i <= 100; i++)
{
sum1 = sum1 + 1 / (float)(i);
sum2 = sum2 + 1 / i;
sum3 = sum3 + (float)(1 / i);
sum4 = sum4 + (float)(1) / i;
}
printf("sum1 = %f\n", sum1);
printf("sum2 = %d\n", sum2);
printf("sum3 = %f\n", sum3);
printf("sum4 = %f\n", sum4);
system("pause");
return 0;
}
/*
结果分析:
-------------------------
sum1 = 5.187378
sum2 = 1
sum3 = 1.000000
sum4 = 5.187378
请按任意键继续. . .
-------------------------
*/
强制类型转化:
格式:
(数据类型)(表达式)
功能:
把表达式的值强制转化为前面所执行的数据类型
例子:
(int)(4.5+2.2) 最终值是6
(float)(5) 最终值是5.000000
浮点数的存储所带来的问题:
float 和 double 都不能保证可以精确的存储一个小数
原因:
计算机对于浮点型的存储只是存储一个相近的数,并不一定会将整个数据完整的存储
举例:
1. 有一个浮点型变量x,如何判断x的值是否是零
if (|x - 0.000001| <= 0.000001)
是;
else
不是;
2. 为什么循环中更新的变量不能定义成浮点型
原因:浮点型是一个非准确输出
for (i = 1.0;i <= 100.0;i++)
这种写法可能会出现原本是100的值时,i为100.0001等等之类的数,导致循环中断
3. 浮点型虽然不能所有的数字都能准确输出,但是还是有一部分数字可以准确输出