比如说 1,2,3
是先输入一组数然后在输出
123 132 231 213 321 312
比如说 1,3,4
143 134 431 413 341 314
[此贴子已经被作者于2006-10-28 14:31:22编辑过]
#include<stdio.h>
#include"string.h"
int main()
{
int a,b,c,i;
char s[10];
scanf("%s",s);
i=strlen(s);
for(a=s[0]-'0';a<=s[i-1]-'0';++a)
{
for(b=s[0]-'0';b<=s[i-1]-'0';++b)
{
for(c=s[0]-'0';c<=s[i-1]-'0';++c)
{
if(a!=b&&a!=c&&b!=c)
printf("%d%d%d ",a,b,c);
}
}
}
return 0;
}
突然发现以前写过一个,给你参考参考...
注意输入是输入一个数(最大9位数),
比如输入258,而不要输入2 5 8,空格去掉.
[CODE]#include<stdio.h>
#include<string.h>
char prnt[20];
int tlen=0;
void out(char *s);
void out(char *s)
{
char s1[11];
int i,len,j,t;
len=strlen(s);
for(i=0;i<len;i++)
{
prnt[tlen-len]=s[i];
if (len<=1)
{
t=strlen(prnt);
for(j=0;j<t;j++)
{
printf("%c", prnt[j]);
if(j!=t-1)putchar(' ');
}
printf("\n");
}
else
{
memmove(s1, s, i);
memmove(&s1[i], &s[i+1], len-i-1);
s1[len-1]=0;
out(s1);
}
}
}
void main()
{
char s[10];
gets(s);
tlen=strlen(s);
memset(prnt, 0, 20);
out(s);
}[/CODE]