C/C++の宿題を片付けます 57代目
■ このスレッドは過去ログ倉庫に格納されています
0646デフォルトの名無しさん
2006/01/15(日) 18:46:32#include <stdio.h>
#include <stdlib.h>
#include <string.h>
double avg(const void *p) { double a, b, c; sscanf((char *)
p, "%*s%lf%lf%lf", &a, &b, &c);return (a + b + c) / 3; }
int cmp(const void *a, const void *b) {if (avg(a) < avg(b))
return -1; if (avg(a) == avg(b)) return 0;return 1; }
char data[100][100]; int n; void load(FILE * fp) {for (n = 0;
n < 100 && fgets(data[n], 100, fp); n++) ; } char *chomp(char
s) {size_t len = strlen(s); if (len > 0 && s[len-1] == '\n')
s[len-1] = 0; return s;} void print(void) { int i; printf(
"%s", data[0]);for (i = 1; i < n; i++) printf("%s %f\n"
, chomp(data[i]), avg(data[i])); }int main(void) {load(stdin)
;
qsort(data[1], n - 1, 100, cmp); print(); return 0;}
■ このスレッドは過去ログ倉庫に格納されています