#include <stdio.h>
#include <stdlib.h>
int cmp(const void* n1, const void* n2) {
if(*(int *)n1 > *(int *)n2) {
return -1;
} else if (*(int *)n1 < *(int *) n2) {
return 1;
} else {
return 0;
}
}
int main(void) {
char buffer[5];
scanf("%4s%*[^\n]", buffer
); int num
= strtol(buffer
, NULL
, 10); int* score
= (int*)malloc(sizeof(int) * num
); for (int i = 0; i < num; i++) {
scanf("%4s%*[^\n]", buffer
); score
[i
] = strtol(buffer
, NULL
, 10); }
qsort(score
, num
, sizeof(int), cmp
); puts("*** ソート済みのデータ(降順) ***"); for (int i = 0; i < num; i++) {
printf("%dつ目の点数 : %d\n", i
+ 1, score
[i
]); }
scanf("%4s%*[^\n]", buffer
); int key
= strtol(buffer
, NULL
, 10); int* result
= bsearch(&key
, score
, num
, sizeof(int), cmp
); if (result != NULL) {
printf("%ld\n", result
- score
+ 1); }
return EXIT_SUCCESS;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBjbXAoY29uc3Qgdm9pZCogbjEsIGNvbnN0IHZvaWQqIG4yKSB7CiAgaWYoKihpbnQgKiluMSA+ICooaW50ICopbjIpIHsKICAgIHJldHVybiAtMTsKICB9IGVsc2UgaWYgKCooaW50ICopbjEgPCAqKGludCAqKSBuMikgewogICAgcmV0dXJuIDE7CiAgfSBlbHNlIHsKICAgIHJldHVybiAwOwogIH0KfQoKaW50IG1haW4odm9pZCkgewogIGNoYXIgYnVmZmVyWzVdOwogIHByaW50Zigi44OH44O844K/5pWwIDogIik7CiAgc2NhbmYoIiU0cyUqW15cbl0iLCBidWZmZXIpOwogIGdldGNoYXIoKTsKICBpbnQgbnVtID0gc3RydG9sKGJ1ZmZlciwgTlVMTCwgMTApOwogIGludCogc2NvcmUgPSAoaW50KiltYWxsb2Moc2l6ZW9mKGludCkgKiBudW0pOwogIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgIHByaW50ZigiJWTjgaTjgoHjga7ngrnmlbAgOiAiLCBpICsgMSk7CiAgICBzY2FuZigiJTRzJSpbXlxuXSIsIGJ1ZmZlcik7CiAgICBnZXRjaGFyKCk7CiAgICBzY29yZVtpXSA9IHN0cnRvbChidWZmZXIsIE5VTEwsIDEwKTsKICB9CiAgcXNvcnQoc2NvcmUsIG51bSwgc2l6ZW9mKGludCksIGNtcCk7CiAgcHV0cygiKioqIOOCveODvOODiOa4iOOBv+OBruODh+ODvOOCvyjpmY3poIYpICoqKiIpOwogIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgIHByaW50ZigiJWTjgaTnm67jga7ngrnmlbAgOiAlZFxuIiwgaSArIDEsIHNjb3JlW2ldKTsKICB9CiAgc2NhbmYoIiU0cyUqW15cbl0iLCBidWZmZXIpOwogIGdldGNoYXIoKTsKICBpbnQga2V5ID0gc3RydG9sKGJ1ZmZlciwgTlVMTCwgMTApOwogIGludCogcmVzdWx0ID0gYnNlYXJjaCgma2V5LCBzY29yZSwgbnVtLCBzaXplb2YoaW50KSwgY21wKTsKICBpZiAocmVzdWx0ICE9IE5VTEwpIHsKICAgIHByaW50ZigiJWxkXG4iLCByZXN1bHQgLSBzY29yZSArIDEpOwogIH0KICBmcmVlKHNjb3JlKTsKICByZXR1cm4gRVhJVF9TVUNDRVNTOwp9Cg==