我正在尝试编写一个程序来检查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就是问题所在。你有没有人知道为什么会这样?
答案 0 :(得分:0)
看起来printf
完全填充控制台缓冲区并删除旧行。尝试将结果写入文件或以某种方式增加控制台缓冲区容量。
答案 1 :(得分:0)
打开终端,单击左上角,转到属性,然后增加缓冲区大小。保存并测试。如果需要,重复一遍。
话虽如此,我同意之前的评论,你应该只使用输出文件。
编辑:经过一些测试,我只能同时显示最多9,000行。我会在你的情况下继续使用输出文件。