View Full Version : [C] Problemi con valori reali
Ciao a tutti!
Quando faccio operazioni con numeri reali il risultato finale è sempre 0.00000. Non riesco a capire perché. Ad esempio vi posto questa funzione che ho fatto la quale mi restituisce come risultato sempre 0.00000:
double eval(double *p, double x, int n){
double res=0.0;
int i;
for(i=n; i<n; i++){
res+=i*(pow(x,i));
}
return res;
}
Perché facendo una printf del risultato mi da 0? Grazie.
VegetaSSJ5
01-05-2005, 20:22
for (i=n; i<n; i++)...
a cosa ti serve il puntatore a double *p??
No infatti mi sa che l'ho scritta male, perché il puntatore a double mi serve per passare un array. quindi il for sarebbe:
for(i=n; i<n; i++){
res+=p[i]*(pow(x,i));
No infatti mi sa che l'ho scritta male, perché il puntatore a double mi serve per passare un array. quindi il for sarebbe:
for(i=n; i<n; i++){
res+=p[i]*(pow(x,i));
Questo ciclo non e' mai eseguito. Parte da n e continua fino a che i e' minore di n, quindi mai.
Prova cosi':
for (i = 0; i < n; ++i)
{
res += p[i] * (pow(x, i));
}
Si hai ragione magari ho copiato male, ma quello che volevo sapere perché il risultato dell'espressione è sempre 0. Ma mi è successo anche con altri programmi.
VegetaSSJ5
01-05-2005, 21:05
manugal sai come funziona il ciclo for??
Scusami eh però qui non è una questione di ciclo for o no. Ho capito che il ciclo è così infatti ho ricontrollato ed è così. Il problema è che la somma tra numeri reali mi viene sempre zero.
VegetaSSJ5
01-05-2005, 21:17
se inizializzi i=n e poi vai a fare il controllo i<n grazie al ... che ti viene sempre zero! il ciclo for non viene mai eseguito!
Ok ora ho capito grazie. Un'ultima cosa... come faccio a dire che un intero positivo può essere scritto come potenze di 2?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.