南陽理工ACM 題4《ASCII碼排序》
阿新 • • 發佈:2019-02-01
4-ASCII碼排序
記憶體限制:64MB 時間限制:3000ms Special Judge: No accepted:76 submit:115
題目描述:
輸入三個字元(可以重複)後,按各字元的ASCII碼從小到大的順序輸出這三個字元。輸入描述:
第一行輸入一個數N,表示有N組測試資料。後面的N行輸入多組資料,每組輸入資料都是佔一行,有三個字元組成,之間無空格。
輸出描述:
對於每組輸入資料,輸出一行,字元中間用一個空格分開。
樣例輸入:
複製2 qwe asd
樣例輸出:
e q w a d s
題解:
南陽理工換了個新的系統,感覺不錯啊,哈哈哈哈哈,就是舊系統的資料遷移不過去,手動搬,看看哪些值得發的,就擺上來吧,看看以前寫的程式碼,還是好好笑的哈哈哈哈哈哈。
原創程式碼:
#include<stdio.h> #include<stdlib.h> int main() { char *p=0,ch; int i,n; scanf("%d",&n); getchar(); p=(char *)calloc(n*3,sizeof(char));//吸收回車 for(i=0;i<n*3;i=i+3) { *(p+i)=getchar(); *(p+i+1)=getchar(); *(p+i+2)=getchar(); getchar(); //吸收回車鍵,三個資料為一組 } for(i=0;i<n*3;i=i+3) { if(*(p+i)>*(p+i+1)) //3個if用來排序 { ch=*(p+i); *(p+i)=*(p+i+1); *(p+i+1)=ch; } if(*(p+i)>*(p+i+2)) { ch=*(p+i); *(p+i)=*(p+i+2); *(p+i+2)=ch; } if(*(p+i+1)>*(p+i+2)) { ch=*(p+i+1); *(p+i+1)=*(p+i+2); *(p+i+2)=ch; } printf("%c %c %c\n",*(p+i),*(p+i+1),*(p+i+2)); } free(p); return 0; }