PDA

Visualizza la versione completa : [c] numeri casuali in un intervallo di interi pari


00FUMI
22-04-2010, 15:49
Sono alle prese con il manuale ,per imparare il linguaggio [ANSI c] (scopi didattici) ... devo fare un esercizio che mi chiede:

attraverso una sola istruzione di stampare(a video) un numero "casuale" compreso in quest' intervallo (2,4, 6,8,10)


se io provo con l'istruzione

printf("%d" , 2 + (rand() % 9)) non mi funziona visto che l'intervallo [rand() % 9] mi restituisce interi compresi tra 0 e 8.

e quindi comprende anche i numeri dispari!

Non ho ancora affrontato il capito degli array , (se puo essere utile a sapersi)

come posso invocare la funzione rand() su un certo insieme di valori prefissati , oppure risolvere il problema in un modo alternativo? ....grazie!

MacApp
22-04-2010, 16:10
Originariamente inviato da 00FUMI
risolvere il problema in un modo alternativo? ....grazie!
rand da 1 a 5 e moltiplichi per 2.
;-)

antotan
22-04-2010, 16:11
se hai gi trattato l'operatore ternario e l'operatore modulo, potresti fare cos:



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

int main()
{
int x;
srand(time(NULL));
printf("%d\n", (x = (1 + rand()%10))%2 == 0 ? x : x+1 );
}



in pratica assegni a x un valore random da 1 a 10. se pari, stampi x. se dispari, stampi il successivo che ovviamente pari ed compreso tra 2 e 10

edit:



rand da 1 a 5 e moltiplichi per 2.
;-)


giusto... :P

:ciauz:

00FUMI
22-04-2010, 16:19
non non ho ancora trattato l'operatore ternario! ..

Xmcapp utilissimo suggerimento grazie per la collaborazione!

Loading