PTA-刪除重複字元(C語言)
阿新 • • 發佈:2018-12-04
本題要求編寫程式,將給定字串去掉重複的字元後,按照字元ASCII碼順序從小到大排序後輸出。
輸入格式:
輸入是一個以回車結束的非空字串(少於80個字元)。
輸出格式:
輸出去重排序後的結果字串。
輸入樣例:
ad2f3adjfeainzzzv
輸出樣例:
23adefijnvz
#include <stdio.h> #include<string.h> //排序 int sort(char num[],int n){ char t; for(int i=0;i<(n-1);i++) for(int j=i+1;j<n;j++) if(num[i]>num[j]) { t=num[i]; num[i]=num[j]; num[j]=t; } for(int i=0;i<n;i++) printf("%c",num[i]); } int main(){ char num[100]; gets(num); int n=strlen(num); //去重 for(int i=0;i<(n-1);i++){ for(int j=i+1;j<n;){ if(num[i]==num[j]){ for(int t=j;t<(n-1);t++) num[t]=num[t+1]; n--; j--; //如果緊挨著的幾個字母相同會出現跳過情況,繼而漏掉重的元素,所以對j做一定的處理 } j++; } } sort(num,n); return 0; }