标题:求解释啊!!!!!!!!!!输出1~100之间每位数的和大于乘积
只看楼主
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
结帖率:89.66%
已结贴  问题点数:20 回复次数:1 
求解释啊!!!!!!!!!!输出1~100之间每位数的和大于乘积
#include<stdio.h>
int main()
{
    int i,j,n=0;
    int he,chen;
    chen=1,he=0;
     for(j=1;j<100;j++)
    {
   
        i=j;
        while(i!=0)
        {
            he+=i%10;
            chen*=i%10;
            i/=10;
        }
   
        if(he>chen){
            if(n%5==0)
                printf("\n");
            printf("%4d",j);
            n++;
        }
    }
    return 0;
}

 


当把chen he初始化在for语句之前时得到的答案就不对这是为什么呢?

#include<stdio.h>
int main()
{
    int i,j,n=0;
    int he,chen;
    chen=1,he=0;
     for(j=1;j<100;j++)
    {
   
        i=j;
        while(i!=0)
        {
            he+=i%10;
            chen*=i%10;
            i/=10;
        }
   
        if(he>chen){
            if(n%5==0)
                printf("\n");
            printf("%4d",j);
            n++;
        }
    }
    return 0;
}

 
搜索更多相关主题的帖子: include return 
2011-11-12 16:10
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
得分:20 
你的while循环,会改变chen和he的值,所以你在for的每次循环前必须先将chen和he分别赋值为1和0,这就必须把赋值语句放在for里面
2011-11-12 16:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-355085-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.164034 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved