c语言求100以内的完数,我写了是这种情况,不明白哪里错了,求原因

如题所述

第1个回答  2017-04-09
代码没有语法错误,唯一的就是如果调用库中的头文件应该用<>;而不是"";但是也没有什么影响;我不知道什么叫完数;但是你试下数就知道了;i=1的时候,j=1;里层循环条件不成立;i=2的时候,i=1条件成立,sum=1;sum==i的条件不成立,所以不会输出;i=3的时候sum =2;i=4的时候sum=5; i=5的时候sum=6;刚好每次sum都巧妙地跳过了i的值;所以一直不会输出
第2个回答  2017-04-09

    第二个if语句放到第一个for循环li而不是第二个

    第二个for循环里还要加上sum=0;   你这样会一直累积

追问

重新修改了,可运行结果没变

追答

sum=0;放到第一个for循环里,不要放到if里

追问

再问下,第二个if为什么不能放在第二个for里,麻烦了

追答

因为是所有数加完了再进行比较,你放在第二个for里等于是每加一次比较一次

追问

两种方式都目的都一样,没毛病的呀

追答

因为之前没清零,在你第二个循环j处于最后一个因子和i之间时,这个if依旧会被触发

追问

哦,明白了,谢谢

本回答被提问者采纳
相似回答