题目描述
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入
输入是一个以回车结束的非空字符串(少于80个字符)。
输出
输出去重排序后的结果字符串。
样例输入 Copy
ad2f3adjfeainzzzv
样例输出 Copy
23adefijnvz
思路:
有一堆相同的字符,定为a[y],a[x],a[z];y<x<z;
可以用接近冒泡排序法的方法,for(i======)
for(j======){
if(a[j]==a[i])
a[j]='?'
令a[x],a[z].
答案(这题方法很多,仅供参考):
#include<stdio.h>
#include<string.h>
int main(){
char a[80],temp;
gets(a);
int n=strlen(a),index,min,i,j;
for(i=0;i<n-1;i++)
{
min=i;
index=i;
for(j=i+1;j<n;j++)
{
if(a[j]==a[i])
a[j]='?';
}
for(j=i+1;j<n;j++)
if(a[j]<a[index])
index=j;
temp=a[i];
a[i]=a[index];
a[index]=temp;
}
for(i=0;i<n;i++){
if(a[i]=='?')continue;
else printf("%c",a[i]);}
return 0;
}
//writed by sorrymaker;