Salve, a tutti premetto che sono nuovo in questo forum(quindi potrei sbagliare qualcosina ,ditemi se sbaglio) e premetto che è da circa un mese che sto programmando in C.
Frequento il primo anno di ingegneria informatica e dopo aver fatto fondamenti di informatica in python(molto simpatico per la sua semplicità)mi sto cimentando in C. Ill programma che devo fare ha il solo compito di dirmi dato un numero N(input)di lanci,quante volte esce testa(1) e quante volte esce croce(0).Non Capisco perche la mia funzione rand che dovrebbe produrre casualmente solo '0' oppure '1' mi si aggiorna come se fosse un contatore.Grazie in anticipo per qualunque risposta.
codice:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int generaLancio(){
int rand(void){
srand(time(NULL));
return rand()% 2;
}
}
void Aggiorna(int*testa,int*croce,int esito){
int cont=1;
*testa=0;
*croce=0;
while(cont<=esito){
int ris=generaLancio();
printf("%d",ris);
if(ris==0){
(*croce)++;
cont++;
}
else{
(*testa)++;
cont++;
}
}
printf("\n");
printf("sono uscite %d volte testa e %d volte croce\n",*testa,*croce);
}
int main(){
int t=0,c=0,esit;
printf("inserisci il numero di lanci: ");
scanf("%d",&esit);
Aggiorna(&t,&c,esit);
return 0;
}
succede che int ris=generaLancio() che deve valere o 0 o 1 facendo oppurtuni printf mi accorgo che vale 1,2,3,4,5,6,ecc.