一个小程序里的问题,特别搞,求高手,也许你也没有碰到过哦!
#include "stdio.h"
int main()
{
int i,j;
for(i=1;i<=100;i++)
for(j=1;j<=i;j++)
if(i%j==0)
printf("%d %d\n",i,j);
return 0;
}
这是我的一个大代码你提出来的东西,因为它,导致了我所有的错误!
主要是运行结果坑爹啊!如下:
46 2
46 23
46 46
47 1
47 47
.
.
.
.
假如将以上代码改一下
其中的i<=100改为i<=50
如下
#include "stdio.h"
int main()
{
int i,j;
for(i=1;i<=50;i++)
for(j=1;j<=i;j++)
if(i%j==0)
printf("%d %d\n",i,j);
return 0;
}
然后运行一切正常
1 1
2 1
2 2
3 1
3 3
。
。
。
我估计是什么缓存区溢出,反正就是内存出了毛病吧!
求各位大哥解答!
[解决办法]
我在VC里把PRINTF改成TRACE运行正常啊。
[解决办法]
楼主,程序是正确的,没有错误,只是控制台屏幕太小了,放不下那么多...你用DEBUG调试一下不就可以了,或者将他们输出到文件中去试一下
[解决办法]
不是溢出的问题,是你的显示不全的问题你把程序改一下就可以看见全部了。
因为你的程序显示的项太多了。
int number=0;
for(i=1;i<=100;i++)
{
for(j=1;j<=i;j++)
{
if(i%j==0)
{
printf("%d %d;",i,j);
number++;
}
if (number>20)
{
printf("\n");
number=0;
}
}
}
[解决办法]
控制台屏幕太小了.....楼主把结果输出到文件中就可以看清楚了