NYOJ ASCII碼排序
阿新 • • 發佈:2018-11-15
時間限制:3000 ms | 記憶體限制:65535 KB
難度:2
輸入
第一行輸入一個數N,表示有N組測試資料。後面的N行輸入多組資料,每組輸入資料都是佔一行,有三個字元組成,之間無空格。
輸出
對於每組輸入資料,輸出一行,字元中間用一個空格分開。
樣例輸入
2 qwe asd
樣例輸出
e q w a d s
描述
輸入三個字元(可以重複)後,按各字元的ASCII碼從小到大的順序輸出這三個字元。
#include <iostream> #include <cstdio> #include <set> using namespace std; struct ST{ char ch; /*排序不去重*/ friend bool operator < (const ST& n1,const ST& n2){ //當兩個元素相同時不去重 if(n1.ch == n2.ch)return true; else return n1.ch < n2.ch; } }e[1000]; int main(int argc, char const *argv[]) { //N - 次數 int N; scanf("%d",&N); //去除輸入N後的 \n getchar(); while(N--){ set<ST> et; for(int i = 0;;i++){ scanf("%c",&e[i].ch); //當符號是\n時結束這次迴圈 if(e[i].ch == '\n')break; et.insert(e[i]); } //輸出 for(set<ST>::iterator k = et.begin();k != et.end();k++) cout << k->ch << " "; //換行 printf("\n"); } return 0; }