HDU - 2020
この問題はもともと貼る必要はありませんが、qsortが構造をソートできることに気づきました.
結局qsort()の原理は不明で、使うことしか知らない.最近は悩み事も山ほどあるので、深く考えたくないので、後で状態があってからにしましょう.
次はコードで、qsortで直接intを並べ始めたが、結果はもちろんめちゃくちゃで、後に2*sizeof(int)に変更され、奇跡が現れた.
これはハイエンドですね.
結局qsort()の原理は不明で、使うことしか知らない.最近は悩み事も山ほどあるので、深く考えたくないので、後で状態があってからにしましょう.
次はコードで、qsortで直接intを並べ始めたが、結果はもちろんめちゃくちゃで、後に2*sizeof(int)に変更され、奇跡が現れた.
これはハイエンドですね.
/**
* Author: Gneveek
* Data: 2011-10-9
* Descripition: hdu - 2020
*/
#include <stdio.h>
#include <stdlib.h>
struct a{
int x;
int y;
};
int int_cmp(const void *a, const void *b)
{
return *(int *)b - *(int *)a;
}
int main()
{
//freopen("C:\\in.txt","r",stdin);
struct a data[105];
int n,i;
while(scanf("%d",&n), n != 0)
{
for(i=0; i<n; i++)
{
scanf("%d",&data[i].x);
if(data[i].x < 0)
{
data[i].y = 1;
data[i].x = -data[i].x;
}
else
data[i].y = 0;
}
qsort(data,n,2*sizeof(int),int_cmp);
for(i=0; i<n; i++)
{
if(data[i].y == 1)
{
if(i == n-1)
printf("-%d",data[i].x);
else
printf("-%d ",data[i].x);
}
else
{
if(i == n-1)
printf("%d",data[i].x);
else
printf("%d ",data[i].x);
}
}
putchar('
');
}
return 0;
}