各位高手!!!我的程序哪里错啦?o(∩_∩)o...

来源:百度知道 编辑:UC知道 时间:2024/05/31 21:44:26
要求添出括号中的数字满足相等的所有答案:
()09*()()=()()6()*()()()=()5()()
————————————————————————————————————————(没有报错,运行为黑屏)
/* Note:Your choice is C IDE */
#include "stdio.h"

void main()
{
int a,c,d,e,f,g,h,i,j,k,l,m;
long n1,n2,n3,n4,n5;

for(a=1;a<=9;a++)
for(c=1;c<=9;c++)
for(d=0;d<=9;d++)
for(e=1;e<=9;e++)
for(f=0;f<=9;f++)
for(g=0;g<=9;g++)
for(h=1;h<=9;h++)
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
for(k=1;k<=9;k++)
for(l=0;l<=9;l++)
for(m=0;m<=9;m++)
{
n1=100*a+9;
n2=10*c+d;
n3=1000*e+f*100+60+g;
n4=h*100+i*10+j;
n5=1000*k+500+l*10+m;
if((n1*n2==n3*n4)&&(n3*n4==n5))
printf("%d09*%d%d=%d%d6%d*%d%d%d=%d5%d%d\n",a,c,d,e,f,g,h,i,j,k,l,m);

}
}
(a)09*(c)(d)=(e)(f)6(g)*(h)(i)(j)=(k)5(l)(m)

我还是要知道我的这是咋了?另外有啥更好的方法?

很负责的说,排除可能的失误,程序没有错,你是不是等了半天没有出结果,只看到光标在闪,那是因为你看看你用了那么多for,电脑需要很长时间来计算,可能你等个半个钟头,能出现结果吧,你慢慢等啊。
可惜我上面vc坏了,不然我帮你是试试,不过应该就是这方面的问题了,希望对你有用。

补充:好像看出了点问题,按照你的意思,所加的数第一位不能是0,可是你看看,第一个式子是三位数乘以两位数,最低是4位,最高是5位,第二个式子,四位数乘以三位数,最高7位,最低八位,最后的数是四位,按照你的意思那肯定是没有答案的,因为位数上就不可能相等,所以可以肯定的是第二个式子当中的两个数的第一位都是0,所以就少了两个循环,你自己再试试看,我的vc坏了,不好意思,不然我帮你试试
用同学的电脑试了一下,好像是有答案了,不过肯定还有不尽如人意之处,你参考参考,你想到好方法,也不妨告诉我一下,QQ570424896源代码如下:
#include "stdio.h"

void main()
{
int a,c,d,e,f,g,h,i,j,k,l,m;
long n1,n2,n3,n4,n5;

for(a=0;a<=9;a++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)

for(f=0;f<=9;f++)
for(g=0;g<=9;g++)

for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
for(l=0;l<=9;l++)
for(m=0;m<=9;m++)
{
n1=100*a+9;
n2=10*c+d;
n3=f*100+60+g;
n4=i*10+j;
n5=1000*k+500+l*10+m;
if((n1*n2==n3*n4)&&(n3*n4==n5))
printf