vi posto questo programma dovrebbe generare dei semi e dei numeri casuale dato un certo numero di carte che decidiamo di dare a ogni mano..ma il metodo rand va oltre il range che gli do io..a me il massimo è 13 lui va anche a 100 ecc aiutatemi
codice:#include<stdbool.h> #include<stdio.h> #include<stdlib.h> #include<time.h> #define NUM_SUITS 4 #define NUM_RANKS 13 int main(void){ bool in_hand[NUM_SUITS][NUM_RANKS]={false}; int num_cards,rank,suit; const char rank_code[]={'2','3','4','5','6','7','8','9','t','j','q','k','a'}; const char suit_code[]={'c','d','h','a'}; srand((unsigned)time(NULL));//serve per non generare sempre gli stessi numeri casuali printf("metti il numero di carte per mano"); scanf("%d",&num_cards); printf("mano:\n"); while(num_cards>0){ suit=rand()%NUM_SUITS;//genera semi casuali da 1 a num_suits rank=rand()%NUM_RANKS;//sceglie un valore casuale massimo uguale al valore num_ranks if(!in_hand[suit][rank]){ in_hand[suit][rank]=true; num_cards--; printf("%d %d\n",rank_code[rank],suit_code[suit]); } } printf("\n"); system("PAUSE"); return 0; }

Rispondi quotando