Samacc 2021-03-14 21:54 采纳率: 100%
浏览 41
已采纳

C++ 做水仙花数,if里面==写成了=,为什么会输出这种结果?

 

  • 写回答

2条回答 默认 最新

  • 对象被抛出 2021-03-14 23:19
    关注

    先声明, 赋值操作的返回值是赋的值本身, 比如x = 3的返回值是3. 下面一次一次进循环给你分析

    第一次进循环, d=100, 算出来abc分别是1,0,0,所以e=1,由于赋值操作d=e的存在,这里d被修改为1,同时if(1)为true,进入循环, 输出d的值,也就是1. 最后d++,d=2

    第二次循环, d=2, 算出来a,b,c=2,0,0,所以e=8,d=e=8,if(8)为true, 输出d为8, d++, d=9

    第三次循环, d=9, a,b,c=9,0,0,e=729, d=e=729, if(729)true, 输出729, d++, 730

    第四次循环, d=730, a,b,c=7,3,0 d=e=370, if(370),输出370, d++, 371

    第五次循环, d=371, a,b,c=3,7,1 d=e=371, 这刚好是一个水仙花数, if(371)输出371, d++, 372

    ....

    可以看出来这是一个死循环, d的值被修改为3个数位立方的和+1, 这个和很难大于1000

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 靶向捕获探针设计软件包
  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制
  • ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
  • ¥50 paddleocr最下面一行似乎无法识别
  • ¥15 求某类社交网络数据集