分别对元音和辅音排序
#include <iostream> #include <cstdlib> using namespace std; struct letter { char c; int count; }; int com(const void *a,const void *b) { return *(char*)a - *(char*)b; } char ch1[110],ch2[110]; int main () { int n; cin>>n; int xu = 0; while (n--) { int j1 = 0, j2 = 0; xu++; letter vol[5] = {{'A',0},{'U',0},{'E',0},{'O',0},{'I',0}}; letter con[21] = {{'J',0},{'S',0}, {'B',0},{'K',0},{'T',0}, {'C',0},{'L',0}, {'D',0},{'M',0},{'V',0}, {'N',0},{'W',0}, {'F',0},{'X',0}, {'G',0},{'P',0},{'Y',0}, {'H',0},{'Q',0},{'Z',0}, {'R',0} }; int num; cin>>num; int flag = 0; int v = 0; int c = 0; cout<<"Case "<<xu<<": "; for(int i = 0; i < num; i++) { if(!flag) { flag = !flag; if(vol[v].count>20) v++; ch1[j1++] = vol[v].c;//cout<<vol[v].c; vol[v].count++; } else { flag = !flag; if(con[c].count>4) c++; ch2[j2++] = con[c].c;//cout<<con[c].c; con[c].count++; } } qsort(ch1,j1,sizeof(char),com); qsort(ch2,j2,sizeof(char),com); flag = 0; j1 = 0; j2 = 0; for(int i = 0; i < num; i++) { if(!flag){flag = !flag;cout<<ch1[j1++];} else {flag = !flag;cout<<ch2[j2++];} } cout<<endl; } return 0; }