lun1ght 2024-03-31 15:09 采纳率: 75%
浏览 5

为什么i在for语句循环一次后自加2和在else语句中自加2的输出结果差的很多


#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
    double sum=0,num=1,i=1.0,k=1.0;
    int count=0;
    for(;;i+=2)
    {
        if(fabs(num)<pow(10,-6))
            break;
        else
        {
            sum+=num;
            k=-k;
            /*i+=2;*/
            num=k/i;
            count++;
        }
    }
    sum*=4;
    printf("%lf %d",sum,count);

    return 0;
}

当i在for后的表达式中时的输出为

img

当i在else语句中时的输出为

img

通过查看sum的值,发现i在for后的表达式时,sum一直在重复2个数字

img


这是为什么?

  • 写回答

4条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-31 15:14
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 代码中使用了无限循环for(;;),其中i+2在循环中每次增加2,num为其它一些变量计算所得。而整个循环的终止条件为fabs(num)= pow(10, -6)){ sum += num; k = -k; i += 2; num = k / i; count++; } sum *= 4; printf("%lf %d", sum, count); return 0; } ```
    评论

报告相同问题?

问题事件

  • 创建了问题 3月31日

悬赏问题

  • ¥15 晶体塑性有限元——Damask求解
  • ¥15 写出这个有没有人能写一下今天中午就要
  • ¥30 设计一个图形用户界面来控制你机械臂的运动
  • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
  • ¥15 RPG游戏架构设计和开发方法
  • ¥15 前端返回pdf时不显示内容
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变