daniele90 ha scritto:
Io ho provato a fare (rand()%10)/5 ma non va..
C'e' un problemi subdolo in questa espressione.
Per prima cosa:
dovresti leggerti il capitolo sui tipi primitivi presente in qualunque testu sul C, in qualunque tutorial, ... (cioe' dovresti
studiare ) ed in particolare la parte relativa agli
operatori matematici ed alle regole reltive al
type casting ed al
type promotion.
Riassumendo: un'espressione numerica viene valutata utilizzando il
tipo numerico piu' potente.
L'ordine e':
char -> short -> int -> long -> float ->double
(lasciamo perdere la versione unsigned)
Ora: rand() ritorna un
intero, 10 e' un
intero, 5 e' un
intero. Quale tipo numerico verra' utilizzato per fare i calcoli ?
INTERO !!!!!!
Se vuoi far si che il calcolo ritorni
double dovrai far si che da qualche parte ci sia un
double.
Si tratta di una modifica
PUNTUALE!!!!!
Speriamo bene!!!