在使用C ++时遇到了一些麻烦

时间:2017-04-14 16:52:13

标签: c++

我正在尝试编写一个程序来检查1到9999999之间的数字是否是一个数字,其数字保持不变或从左到右增加(变量和函数名称是越南语)

   #include<stdio.h>
    int daykhonggiam(int n)
    {
        while (n>=10)
    {
            int donvi=n%10;
            n=n/10;
            if(donvi<n%10)
            {
                return 0;
            }
    }
    return 1;
    }
    int main(void)
    {
        for(int i=1;i<=9999999;i++)
                {
                    if(daykhonggiam(i)==1)
                    printf("%d\n",i);
    }
    }  

问题是,当我编译并运行代码时,只显示了一些结果(结果来自5555999到9999999)。当我点击f9我可以从1开始运行,但最终屏幕只显示5555999到9999999.我尝试了一个在线编译器,显示了所有结果。 所以我猜我的dev c ++ 5.11就是问题所在。你有没有人知道为什么会这样?

2 个答案:

答案 0 :(得分:0)

看起来printf完全填充控制台缓冲区并删除旧行。尝试将结果写入文件或以某种方式增加控制台缓冲区容量。

答案 1 :(得分:0)

打开终端,单击左上角,转到属性,然后增加缓冲区大小。保存并测试。如果需要,重复一遍。

话虽如此,我同意之前的评论,你应该只使用输出文件。

编辑:经过一些测试,我只能同时显示最多9,000行。我会在你的情况下继续使用输出文件。