13test07;字符排序,去重,三三输出

#include<iostream>
#include<string>
using namespace std;
void buddle(char*,int);//对输入字符的AScII进行排序
void delete_num(char*,int);//去除已排好顺序中重复的字符.
int main()
{  
while(1)
{
char s[30];//定义存储字符的字符数组。
string s1;//定义string对象
cout<<"enter strings:"<<endl;
cin>>s1;//将输入字符串存入字符对象s1中。
int len=s1.size();//取出输入字符个数
s1.copy(s,len,0);//将输入字符复制到字符数组s中
buddle(s,len);//冒泡排序
delete_num(s,len);
}
return 1;


}
void buddle(char*p1,int x)
{
for(int i=0;i<x;++i)//冒泡排序过程
{
for(int j=1;j<x-i;++j)
{
int temp=p1[j-1];
if(p1[j-1]>=p1[j])
{
p1[j-1]=p1[j];
p1[j]=temp;
}
}
}
}


void delete_num(char* p2,int y)
{
char *b=new char[y];//选出不重复的字符存入数组b中
b=p2;
int validnum=0;//表示已存入b中的不重复字符个数
int flag;//标记刚从s中取出的数是否与b中任意数相同
for(int i=0;i<y;++i)
{
flag=1;
for(int j=0;j<validnum;++j)
if(p2[i]==b[j])
{
flag=0;
break;
}
if(flag)
b[validnum++]=p2[i];
}
for(i=0;i<validnum;++i)
for(int j=i+1;j<validnum;++j)
for(int num=j+1;num<validnum;++num)
cout<<b[i]<<" "<<b[j]<<" "<<b[num]<<endl;//输出b数组中从左向右任意三个组合
}
posted @ 2014-03-27 18:13  lz3018  阅读(163)  评论(0编辑  收藏  举报