Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59174
  • 博文数量: 29
  • 博客积分: 667
  • 博客等级: 上士
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-11 15:55
文章分类
文章存档

2012年(2)

2011年(27)

我的朋友
最近访客

分类: C/C++

2011-10-13 15:07:22

Input
一个长度小于10的字符串,该字符串由数字1~9组成。字符不会重复出现。

Output
按数字在输入串中出现的次序从小到大的顺序输出该字符组的全排序


  1. #include <stdio.h>
  2. #include <string.h>
  3. char string[9];
  4. int used[9]={0};
  5. char output[9];
  6. int length;
  7. void F(int d){
  8.     int i;
  9.     for(i=0;i<=length;i++){
  10.         if(!used[i]){
  11.             used[i]=1;
  12.             output[d]=string[i];
  13.             if(d==length) {
  14.                 for(d=0;d<length;d++)
  15.                     printf("%c ",output[d]);
  16.                 printf("%c\n",output[length]);
  17.             }
  18.             else
  19.                 F(d+1);
  20.             used[i]=0;
  21.         }
  22.     }
  23. }
  24. int main(void)
  25. {
  26.     scanf("%s",&string);
  27.     length=strlen(string)-1;
  28.     F(0);
  29.     return 0;
  30. }

阅读(388) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~