在Stack overflow上看到这样一个问题。

  计算如下表达式的值:

  P=(1/2-3/4)*(5/6-7/8)*…*[n/(n-1) - (n+2)/(n+3)].

  程序如下:

 

  #include<stdio.h>

   int main ()

   {

   float s, p = 1.0;

   int i, n;

   printf("Put a number:");

   scanf("%d", &n);

   for (i = ; i <= n; i=i+) {

   p *= ((i)/(i+)-(i+)/(i+));

   }

   printf("\n p=%f", p);

   }

  运行之后不管n为何值,p的值都输出为0,为什么?

  初看好像程序没什么问题,但仔细想一下发现计算p的表达式p *= ((i)/(i+1)-(i+2)/(i+3))中的i是int型变量,对于i>=1,(i)/(i+1)永远都为0.

  所以表达式应该修改为:p *= ((float)(i)/(i+1)-(float)(i+2)/(i+3));

  或者 p *= ((i)/(i+1.0)-(i+2.0)/(i+3.0)。学习的时候往往会粗心,不管是学习还是做项目的时候都要认真仔细!培训C++语言的老师说:来博洋的孩子们都是年轻的一代,可不能老糊涂哦!
    博洋教育C++培训教师简介:吴耀,C语言讲师

技术特点:掌握Linux 平台下系统开发,熟悉TCP\IP协议及相关应用,掌握socket TCP.LDP网络编程,熟悉C语言,熟练使用Linux操作系统,熟练使用Linux 平台下软件开发工具。

最新文章

  1. Python学习笔记8-单元测试(1)
  2. 20169212《Linux内核原理与分析》课程总结
  3. db2简单语句记录
  4. Hadoop自定义分组Group
  5. wcf服务返回json
  6. C语言输出当前日期和时间
  7. ajax验证用户名和找回密码参考
  8. LINUX-LXC要好好关注下
  9. spring 学习2
  10. 成为 Linux 内核高手的四个方法
  11. HDU 1069 monkey an banana DP LIS
  12. Visual Studio Team Services使用教程--Readers tfs组checkin权限修改
  13. [译]ASP.NET Core 2.0 视图组件
  14. Java的IO系统
  15. POJ-1860.CurrencyExchange(Spfa判断负环模版题)
  16. 【转】shell速查表
  17. Linux基础命令---文本显示od
  18. java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: &quot; 0&quot;
  19. C++复合类型(数组)
  20. 【读书笔记】SpringBoot读书笔记

热门文章

  1. js格式化时间戳
  2. UILabel常用属性小结
  3. Spring基本使用方法_Bean对象
  4. python callable 函数
  5. iOS 按钮设置图片和事件
  6. 正确的 Composer 扩展包安装方法
  7. HDFS存储系统
  8. xhtmlrenderer渲染pdf,中文换行
  9. EF 4.1 学习资源汇总
  10. spring mvc 必须传某个参数的写法