1. 程式人生 > >南陽理工ACM 題4《ASCII碼排序》

南陽理工ACM 題4《ASCII碼排序》

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;
}