longer_713 2023-02-22 18:00 采纳率: 100%
浏览 23
已结题

三目运算符的先后执行顺序

可以帮忙解释一下为什么这个程序能够做到输出1~100间自身积大于和的数呢?k和s不应该始终相等吗,这个程序为什么是正确的?

int main()
{
    int n,k=1,s=0,m;

    for(n=1;n<=100;n++)
    {
        k=1;

        s=0;

        m=n;

        while (m!=0)
        {
            k*=m%10;
            s+=m%10;
            m/=10;
        }
        if(k>s)
            printf("%d\n",n);
    }
}

  • 写回答

3条回答 默认 最新

  • 元气少女缘结神 2023-02-22 18:20
    关注

    m % 10表示取的个位数 , m / 10表示取个位数左边的数
    假设n=42进入while
    k = 1 * 2; 个位数是2
    s =0+2;
    m /=10 ;此时取的是个位数m=2左边的数 即4
    k=1 * 2 * 4;
    s=0+2+4;
    m /=10;此时 m=4左边已无数,m=0即结束。
    所以当然能判断k和s的大小 并输出这个数n

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

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 已采纳回答 2月23日
  • 创建了问题 2月22日

悬赏问题

  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。