PTA是浙江大学设计类实验辅助教学平台。
题目描述:
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
编译器
C(gcc)
提交代码
#include <stdio.h>
#include <string.h>
#define SIZE 81
static char copy[SIZE];
int exist(char s);
void func(char str[]);
void sort(char copy[]);
int main(){
char str[SIZE];
gets(str);
func(str);
return 0;
}
int exist(char s){
for (int i = 0; copy[i]!='0'; i++)
{
if (copy[i]==s)
{
return 1;
}
}
return 0;
}
void sort(char copy[]){
char temp;
int i,j;
for ( i = 0;copy[i]!='0'; i++)
{
for ( j = 0; j <strlen(copy)-i-1; j++)
{
if (copy[j]>copy[j+1])
{
temp=copy[j+1];
copy[j+1]=copy[j];
copy[j]=temp;
}
}
}
}
void func(char str[]){
int i,j=0;
for (int i = 0;str[i]!='0'; i++)
{
if (!exist(str[i]))
{
copy[j]=str[i];
j++;
}
}
sort(copy);
for ( i = 0; i < copy[i]!='0'; i++)
{
printf("%c",copy[i]);
}
}