Strano comportamento della funzione pow()

di il
3 risposte

Strano comportamento della funzione pow()

Ciao,
sul libro "Il linguaggio C" dei Deitel compare il seguente codice

  #include <stdio.h>
  #include <math.h>

  int
  main(void) {

    double principal = 1000.0;
    double rate = .05;

    printf("%4s%21s\n", "Year", "Amount on deposit");

    for (unsigned int year = 1; year <= 10; year++) {
      double amount = principal * pow(1.0 + rate, year);
      printf("%4u%21.2f\n", year, amount);
    }

    return 0;
  }
però usando il comando
gcc -lm -o fig04_06 -DDEBUG=9 -ansi -pedantic -Wall -g -std=c11 fig04_06.c
dà l'errore di compilazione

fig04_06.c:50: undefined reference to `pow'
collect2: error: ld returned 1 exit status
Se modifico l'istruzione interna al ciclo for nel modo seguente
double amount = principal * pow(1.0, year);
Allora il programma viene compilato, ma riporta di nuovo errore se metto 1.05 nel primo argomento anziché 1.0. Come mai?
Sto usando Ubuntu 20.04

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte