Opgaver i denne lektion   Gå til annoteret slide, hvor denne opgave er tilknyttet -- Tastaturgenvej: 'u'   Alfabetisk indeks   Kursets hjemmeside   

Opgaveløsning:
Indlæsning af doubles


Der er to fejl i programmet:

  1. 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.
  2. 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;
}