Salve a tutti,
questo è il mio primo post in questo forum e sono anche alle prime armi con la programmazione quindi spero di non chiedere un' ovvietà
È da poco che ho cominciato a "studiare" il manuale "C. Corso completo di programmazione" di HM e PJ Dietel e ho incontrato la prima difficoltà nel scrivere un programma che legga in input un numero e restituisca la costante di Euler (2.7182...) elevata a quel numero utilizando la formula
e^x = 1 + (x/1!) + (x^2/2!) + (x^3/3!) + ...
Ho scritto il seguente codice (che non funziona...) ma non riesco a trovare dove sbaglio:
/*visualizza e^x*/
#include <stdio.h>
#include <math.h>
int main ()
{
int cont = 5, cont_num = 5, cont_den = 5;
int p, d, m, x;
float e = 1;
printf("Inserisci un numero: ");
scanf("%d", &x);
while (cont > 0) {
/*numeratore*/
p = pow(x, cont_num);
cont_num--;
/*denominatore*/
d = cont_den;
m = cont_den;
while (cont_den >= 1) {
d = d * --m;
}
cont_den--;
/*e^x*/
e = e + ((float) p / (float) d);
printf("e^%d = %f", x, e);
cont--;
}
system("PAUSE");
return 0;
}
Mi scuso se il codice dovesse essere incasinato o completamente sbagliato.
Come compilatore utilizzo DevC++.
Spero che qualcuno riesca ad aiutarmi a trovare dove sbaglio, in tal caso ringrazio anticipatamente
saluti
revolver