紧擦菊菊长 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条)

报告相同问题?

悬赏问题

  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)