分享

for循环的四个例子

 217小月月坑 2015-08-03

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. 浮点型虽然不能所有的数字都能准确输出,但是还是有一部分数字可以准确输出

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多