c语言,错误在什么地方

2024-11-18 13:54:01
推荐回答(3个)
回答1:

问题出在xiao/2,整型运算,结果为整型,会出现xiao为奇数的情况。这也是初学者容易犯的错误,属于类型运算的基础知识完全没有掌握因此根本就不会而造成的。
解决方法:需要定义xiao为偶数,两种方案:1、同时进行关于xiao的循环;2、规定xiao为偶数。两种方案都可以解决问题。
按方案1:
在for (zhong=1;zhong<98;zhong++)后增加语句
for (xiao=2;xiao<98;xiao+=2)
删掉xiao=100-da-zhong;
按方案2:
if (da*3+zhong*2+xiao/2==100 && da+zhong+xiao==100)
改为
if (xiao%2==0&&da*3+zhong*2+xiao/2==100 && da+zhong+xiao==100)
两种方案都可以得到正确结果。

回答2:

从逻辑上讲:

  1. for(da=1;da<34;d++)

    for(zhong=1;zhong<=50;zhong++)就可以

  2. 你已经定义了xiao=100-da-zhong了

    那么da+zhong+xiao就一定等于100

  3. 条件里,应当包含xiao不能是单数的情况,如xiao%2==0

回答3: