串中取3个不同的字符

来源:互联网 发布:淘宝如何索要发票 编辑:程序博客网 时间:2024/06/14 15:54

题目:


从标准输入读入一个由字母构成的串(不大于30个字符)。

从该串中取出3个不重复的字符,求所有的取法。

取出的字符,要求按字母升序排列成一个串。

不同的取法输出顺序可以不考虑。

例如:
输入:
abc
则输出:
abc

输入:
abcd
则输出:
abc
abd
acd
bcd

输入:
abcaa
则输出:
abc


代码:

#include <stdio.h>#include <stdlib.h>int main(){    char data[30];    char flag[128];    char record[30];    char out[3];    int count=0;    int i,j,k;    for(i=0;i<128;i++){        flag[i]='0';    }    scanf("%s",data);    for(i=0;i<strlen(data);i++){        flag[data[i]]='1';    }    for(i=0;i<128;i++){        if(flag[i]=='1'){        record[count++]=i;}    }    for(i=0;i<count-2;i++){        out[0]=record[i];        for(j=i+1;j<count-1;j++){            out[1]=record[j];            for(k=j+1;k<count;k++){                out[2]=record[k];                printf("%s\n",out);            }        }    }    return 0;}


0 0
原创粉丝点击