紧擦菊菊长 2018-12-05 05:15 采纳率: 100%
浏览 343
已采纳

C++,新手求助,一个很简单的问题帮我解释一下

求输出1000以内各个位数相加等于9的数字。下面是我打的,我想每5个数空一行,上面的程序能达到想要的结果,下面的不行,但我不懂导致这两种不同结果的原因是什么,它们有什么区别,麻烦解释一下,谢谢,

#include <stdio.h>
int main(void)
{
    int i,a=0,b=0,c=0,sum,x=0;
    for(i=0;i<=999;i++)
    {
        a=i%10;
        b=(i/10)%10;
        c=i/100;
        sum=a+b+c;
        if(sum==9)
        {
            printf("%d,",i);
            x++;
      if(x%5==0)
            printf("\n");
        }
    }
}
#include <stdio.h>
int main(void)
{
    int i,a=0,b=0,c=0,sum,x=0;
    for(i=0;i<=999;i++)
    {
        a=i%10;
        b=(i/10)%10;
        c=i/100;
        sum=a+b+c;
        if(sum==9)
        {
            printf("%d,",i);
            x++;
        }
        if(x%5==0)
            printf("\n");
    }
}
  • 写回答

3条回答 默认 最新

  • 智者知已应修善业 2018-12-05 06:13
    关注

    你这样写输出换行的判断要注意求余=0的各种情况,通过分析可知第一循环i=0,x=0,第二循环i=1, x=0;这样的情况
    可以改一下判断条件:
    if(x==5) {x=0;printf("\n");}你再试看会不会?

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

报告相同问题?

悬赏问题

  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真