07/11/15 03:58:19
>>474 課題1-3
点数表を読み込み、点数の高い順に出力するプログラムを作成しなさい。
プログラムにおいて点数表の容量を制限してはいけない。
コンピュータのメモリが許す限り大きな点数表も表示できること。
int compare(const char *a, const char *b)
{
return atoi(b + 7) - atoi(a + 7);
}
void rank(void)
{
int size, count;
char *buffer;
fseek(stdin, 0L, SEEK_END);
size = 10;
count = ftell(stdin) / (size + 1);
buffer = (char *)calloc(count, size);
fseek(stdin, 0L, SEEK_SET);
fread(buffer, size, count, stdin);
qsort(buffer, count, size, compare);
fwrite(buffer, size, count, stdout);
free(buffer);
}