PDA

View Full Version : [C] Bug Misterioso


Darkslide
20-06-2005, 17:25
Un mio amico mi ha passato questo codice...ho provato a compilarlo e va tutto ok....ma presenta un misterioso bug nella potenza del 5....in un caso da 24 anzichè 25... :mbe:
tutto il resto sembra ok...


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

void main()
{
int a=0, b=0;
int tot;
int num;
for(a=0;a<10;a++)
{
b=pow(a,1);
printf("\n%d^1 = %d / %g", a, b,exp(1 * log(a)));
b=pow(a,2);
printf("\n%d^2 = %d / %g", a, b,exp(2 * log(a)));
b=pow(a,3);
printf("\n%d^3 = %d / %g", a, b,exp(3 * log(a)));
}
getch();

}

Brazorv
20-06-2005, 18:34
dichiara b come double.
pow restituisce un double se b è un int viene troncato.

Darkslide
20-06-2005, 18:53
dichiara b come double.
pow restituisce un double se b è un int viene troncato.


quindi è solo una perdita di precisione?

Brazorv
20-06-2005, 18:58
si

Darkslide
20-06-2005, 20:28
si


quando imparerò a dare un occhio ai prototipi di funzione prima di gridare al bug :muro: :mc:

scusate x il tread inutile e pienamente risolvibile senza ricorrere al forum.... :read: :doh: