#include <errno.h>
#include <stdio.h>
int main() {
int total = 0;
double acc = 0, val;
for (;;) {
fputs("Value: ", stdout
);
errno = 0;
int res
= fscanf(stdin
, "%lf", &val
);
if (res == EOF) {
// Handle successful end of input or read error.
if (errno == 0) {
fprintf(stdout
, "Done! You entered %d values averaging %f.\n", total
, acc
/ total
); } else {
fputs("There was an error, aborting!\n", stdout
); }
break;
} else if (res == 0) {
// Handle parse error.
fputs("Sorry, I did not understand. Try again.\n", stdout
); for (int r
= 0; r
!= EOF
&& r
!= '\n'; r
= fgetc(stdin
)) {} } else {
// Handle successful input.
acc += val;
++total;
}
}
}
I2luY2x1ZGUgPGVycm5vLmg+CiNpbmNsdWRlIDxzdGRpby5oPgoKaW50IG1haW4oKSB7CiAgaW50IHRvdGFsID0gMDsKICBkb3VibGUgYWNjID0gMCwgdmFsOwoKICBmb3IgKDs7KSB7CiAgICBmcHV0cygiVmFsdWU6ICIsIHN0ZG91dCk7CiAgICBmZmx1c2goc3Rkb3V0KTsKCiAgICBlcnJubyA9IDA7CiAgICBpbnQgcmVzID0gZnNjYW5mKHN0ZGluLCAiJWxmIiwgJnZhbCk7CgogICAgaWYgKHJlcyA9PSBFT0YpIHsKICAgICAgLy8gSGFuZGxlIHN1Y2Nlc3NmdWwgZW5kIG9mIGlucHV0IG9yIHJlYWQgZXJyb3IuCiAgICAgIGlmIChlcnJubyA9PSAwKSB7CiAgICAgICAgZnByaW50ZihzdGRvdXQsICJEb25lISBZb3UgZW50ZXJlZCAlZCB2YWx1ZXMgYXZlcmFnaW5nICVmLlxuIiwgdG90YWwsIGFjYyAvIHRvdGFsKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBmcHV0cygiVGhlcmUgd2FzIGFuIGVycm9yLCBhYm9ydGluZyFcbiIsIHN0ZG91dCk7CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9IGVsc2UgaWYgKHJlcyA9PSAwKSB7CiAgICAgIC8vIEhhbmRsZSBwYXJzZSBlcnJvci4KICAgICAgZnB1dHMoIlNvcnJ5LCBJIGRpZCBub3QgdW5kZXJzdGFuZC4gVHJ5IGFnYWluLlxuIiwgc3Rkb3V0KTsKICAgICAgY2xlYXJlcnIoc3RkaW4pOwogICAgICBmb3IgKGludCByID0gMDsgciAhPSBFT0YgJiYgciAhPSAnXG4nOyByID0gZmdldGMoc3RkaW4pKSB7fQogICAgfSBlbHNlIHsKICAgICAgLy8gSGFuZGxlIHN1Y2Nlc3NmdWwgaW5wdXQuCiAgICAgIGFjYyArPSB2YWw7CiAgICAgICsrdG90YWw7CiAgICB9CiAgfQp9Cg==