[求助]求助卧龙孔明(难道真的没有人可以解决吗)
昨天有看到 卧龙孔明 帮助一朋友解决使用0-9写出满足xxxx=xxx*xx的式子自己写了个试试 但该程序一运行立即自动结束 苦于找不到原因 在此求助
(数组m用来表示0-9是否已经使用,采用的方法是三个数都不断循环递增(可能方法比较傻,但我还是希望知道为什么运行不了))
#include<stdio.h>
main()
{ int m[10];
int a,b,c,d;
for(a=1023;a<=9876;a++)
{ for (d=0;d<10;d++)
{ m[d]=0;
}
if(m[a/1000]==1) continue;
else m[a/1000]=1;
if(m[a/100%10]==1) continue;
else m[a/100%10]=1;
if(m[a/10%100]==1) continue;
else m[a/10%100]=1;
if(m[a%10]==1) continue;
else m[a%10]=1;
for(b=10;b<=98;b++)
{ if(m[b/10]==1) continue;
else m[b/10]=1;
if(m[b%10]==1) continue;
else m[b%10]=1;
for(c=102;c<=987;c++)
{ if(m[c/100]==1) continue;
else m[c/100]=1;
if(m[c/10%10]==1) continue;
else m[c/10%10]=1;
if(m[c%10]==1) continue;
else m[c%10]=1;
if(a==b*c) {printf("%d=%d*%d",a,b,c);getchar();}
}
}
}
}
[此贴子已经被作者于2007-8-18 13:49:32编辑过]
----------------解决方案--------------------------------------------------------
根据测试(测试方法:程序末尾加while(1);):程序本身没有意外跳出错误,只是程序中的判断等有误
将测试中加的while(1);去掉运行出现了
不知道大家运行后是否出现这个?
[此贴子已经被作者于2007-8-18 9:38:34编辑过]
----------------解决方案--------------------------------------------------------
在main() 返回前加 getch(); 或getchar(); 你自己试下
也就是
#include<stdio.h>
int main()
{
return 0;
getch();//或getchar();
}
----------------解决方案--------------------------------------------------------
以下是引用totohack在2007-8-18 9:34:07的发言:
在main() 返回前加 getch(); 或getchar(); 你自己试下
也就是
#include<stdio.h>
int main()
{
return 0;
getch();//或getchar();
}
在main() 返回前加 getch(); 或getchar(); 你自己试下
也就是
#include<stdio.h>
int main()
{
return 0;
getch();//或getchar();
}
你试过吗,可以正常运行吗?为什么我出现内存错误
----------------解决方案--------------------------------------------------------
没用~~~~~~~~~~~
----------------解决方案--------------------------------------------------------
自己顶下
怕沉了
----------------解决方案--------------------------------------------------------
自己顶下
怕沉了
----------------解决方案--------------------------------------------------------
else m[a/10%100]=1;
这一句很明显的造成越界访问而已
----------------解决方案--------------------------------------------------------