代码如下,本来应该显示10001-19999中间可以分解成两个素数相乘的所有数的,在输出界面滚动的时候还有一万一千多,一万两千多的数,但是输出界面滚动完毕之后就只有一万八千以上了,只有一部分了,为什么?
#include<stdio.h>
#include<math.h>
int sushu (int m)
{
int i;
if (m == 2) return 1;
if (m == 1 || m % 2 == 0) return 0;
for (i = 3; i * i <= m;)
{
if (m % i == 0) return 0;
i += 2;
}
return 1;
}
int main()
{
int i,n;
for(n=10000; n<20000; n++)
{
for(i=2; i<sqrt(n); i++)
{
if(sushu(i)&&sushu(n/i)&&n%i==0)
printf("%d\n",n);
}
}
return 0;
}
C语言,在输出框滚动的时候已经输出出来了,但是输出结束之后不能完全显示。
答案:1 悬赏:60
解决时间 2021-03-12 15:03
- 提问者网友:伪善人独行者
- 2021-03-11 15:51
最佳答案
- 二级知识专家网友:何以畏孤独
- 2021-03-11 17:09
你一定是在Windows下的msdos窗口下运行显示的吧,当你输出的数据量过大时,由于显存缓冲区的关系,只保留最后一部分数据。
其实你可以输出到一个文本文件里,这样更文件查看.方法是使用fopen建立一个文本文件,然后向该文本文件中写入数据,代替你程序中的printf("%d\n",n);
即可。想查看的时候,打开你所建立的文本文件就可以了。
其实你可以输出到一个文本文件里,这样更文件查看.方法是使用fopen建立一个文本文件,然后向该文本文件中写入数据,代替你程序中的printf("%d\n",n);
即可。想查看的时候,打开你所建立的文本文件就可以了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯