>>792

for (n = 0, sum = 0.0; r = scanf("%lf", &h), (r == 1 && 0 <= h); ++n) {
は以下と同等。
for (n = 0, sum = 0.0; ; ++n) {
if(scanf("%lf", &h) != 1) {
break;
}
if (h < 0) {
break;
}
…
}

コンパイルしていないので、間違えていればツッコミよろ