Ciao, sono un nuovo iscritto. Non riesco a capire il perché dell'errore “error: expected ';', ',' or ')' before numeric constant” quando lascio ‘ORDER’ nell'argomento della funzione exp mentre se cambio il nome della variabile ma non la inizializzo il codice viene eseguito. Inoltre al momento dell'esecuzione, dopo aver inserito il valore di 'x' il codice si blocca (Immagino ci sia un errore nella dichiarazione delle funzioni). Il codice è il seguente:
#include <stdio.h>
#define ORDER 15
unsigned potenza(unsigned, unsigned);
unsigned fattoriale(unsigned);
float exp(unsigned x, unsigned ORDER) {
float somma=0.0;
unsigned n;
for (n=0;n<ORDER;n++) {
somma+= (float) potenza(x,n)/fattoriale(n);
}
return somma;
}
unsigned potenza (unsigned x, unsigned n) {
int i;
unsigned prodotto=1;
for (i=0; i<n; i++) {
prodotto=prodotto*x;
}
return prodotto;
}
unsigned fattoriale (unsigned x) {
unsigned prodotto=1;
unsigned n;
while (n>1) {
prodotto=prodotto*n;
n--;
}
return prodotto;
}
int main() {
float x, risultato;
printf ("Inserisci il valore di x dell'equazione e^x:\n");
scanf ("%f", &x);
risultato=exp(x,ORDER);
printf ("Il risultato di e^(%f) e': %f", x, risultato);
return 0;
}
Grazie in anticipo.