想输出由数字0,1,2,3,4,5组成的所有各数字不同的三位数。可是不知道我的程序哪里错了....

#include<stdio.h>
#include<stdlib.h>
main()
{
int i,a=0,k;
char s[4];

for(i=102;i<=543;i++)
{
a=0;
while(i!=0)
{
s[a++]=i%10;
i/=10;
}

if(s[0]==s[1]||s[0]==s[2]||s[1]==s[2])
break;
else
{
if(s[0]>5||s[1]>5||s[2]>5) break;

else
{
k=atoi(s);
printf("%d\n",k);
}
}

}
}
着重是想想看看错在哪里,知道这个方法输出比较笨拙,大家有什么好的方法也可以教一下

第1个回答  2008-12-17
#include<stdio.h>
void main()
{
int sum=0;
int i,j,k;
for(i=1;i<=5;i++)
{
for(j=0;j<=5;j++)
{
for(k=0;k<=5;k++)
{
if(i!=j&&i!=k&&j!=k)
printf("%d\n",i*100+j*10+k);

}
}
}
}
用这个吧,比较简单,你的程序我没看懂。本回答被提问者采纳
第2个回答  2008-12-18
好乱.......
同一楼上的方法
相似回答