Opgaveløsning:
Indlæsning af doubles
Der er to fejl i programmet:
- Variablene d, e og f er erklæret som doubles, men de indlæses med konverterings specifikationen %f i scanf, som knytter sig typen float.
Når der læses en double skal %lf (long float) bruges i scanf.
- Typen af udtrykket d + e + f / 3.0 er double, men det udskrives med konverterings specifikationen %d, som knytter sig til typen int.
Brug %f i stedet for %d.
Her er en version af programmet, som virker:
#include <stdio.h>
int main(void) {
double d, e, f;
printf("Enter three real numbers: ");
scanf("%lf %lf %lf", &d, &e, &f);
printf("The average is: %f\n", (d + e + f) / 3.0);
return 0;
}