为什么两个程序都没结果,请高手看看

来源:百度知道 编辑:UC知道 时间:2024/06/09 06:24:40
我编了两个程序都能运行,就是没结果。请高手看看

18.4位反序数
设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。

17.一个奇异的三位数
一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数。

#include<stdio.h>
void main()
{ int i,j,k,l,a,b;
for(i=1;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
for(l=1;l<10;l++)
{
a=i*10*10*10+j*10*10+k*10+l;
b=l*10*10*10+k*10*10+j*10+i;
if((a*9)==b)printf("这个数是%d%d%d%d\n",i,j,k,l);
break;
}
}
}
}
getchar();
}

#include<stdio.h>
void main()
{ int i,j,k,a,b;
for(i=1;i<7;i++)
{
for(j=0;j<7;j++)
{
for(k=1;k<7;k++)
{
a=i*7*7+j*7+k;
b=k*9*9+j*9+i;
if(a==b)printf("这个数是%d%d%d\n",i,j,k);
break;
}
}
}

第一题的break要放在if中,第二题同理
#include<stdio.h>
void main()
{ int i,j,k,l,a,b;
for(i=1;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
for(l=1;l<10;l++)
{
a=i*10*10*10+j*10*10+k*10+l;
b=l*10*10*10+k*10*10+j*10+i;
if((a*9)==b){printf("这个数是%d%d%d%d\n",i,j,k,l);
break; }
}
}
}
}
getchar();
}

#include<stdio.h>
void main()
{ int i,j,k,a,b;
for(i=1;i<7;i++)
{
for(j=0;j<7;j++)
{
for(k=1;k<7;k++)
{
a=i*7*7+j*7+k;
b=k*9*9+j*9+i;
if(a==b){printf("这个数是%d%d%d\n",i,j,k);
break; }
}
}
}
getchar();
}

第一个:你把if((a*9)==b)换成if((b*9)==a)
第二个:改成下面的,应该没问题了(可能不对啊,献丑献丑)
#include<stdio.h>
void main()
{
int i,j,k,a,b,i1,j1,k1;
for(i1=1;i1<9;i1++)
{
for(i=1;