Programma che non termina...
Salve ragazzi o un piccolissimo problema: questa implemnetazione non termina...sapreste dirmi perchè?E' un piccolo modo per creare casualmete dei numeri random, che in questo caso rappresentano gli indici di un array, ed associarli ai rispettivi valori...GRAZIE MILLE...
#include <stdio.h> #include <time.h> #include <stdlib.h> #define INTERVAL 40 #define ESTRAZIONI 40 typedef enum {FALSE, TRUE} boole_t; boole_t Estratti[INTERVAL]; int main() { char mazzo_di_carte[40][4] = {"1d", "2d", "3d", "4d", "5d", "6d", "7d", "8d", "9d", "10d", "1c", "2c", "3c", "4c", "5c", "6c", "7c", "8c", "9c", "10c", "1m", "2m", "3m", "4m", "5m", "6m", "7m", "8m", "9m", "10m", "1s", "2s", "3s", "4s", "5s", "6s", "7s", "8s", "9s", "10s"}; FILE *file; int i, j, num; file = fopen("file.txt", "w"); srand(time(0)); /* ciclo per non far visualizzare numeri uguali */ for (j = 0; j < INTERVAL; ++j) { /* condizione non valida */ Estratti[j] = FALSE; } /* ciclo per leggere almeno una volta i valori e stamparli (condizione verificata) */ do { i = rand() % INTERVAL; if (!Estratti[i]) { Estratti[i] = TRUE; printf("%d^ carta -> %2s\n", i, mazzo_di_carte[i]); } } while (i < ESTRAZIONI); return 0; }
Risposte
Da un rapido sguardo al sorgente proposto si nota il mancato incremento della variabile i all'interno del blocco sotteso alla if (!Estratti). Questo provoca la mancata terminazione del loop: la condizione di uscita non viene mai raggiunta.
come fai a dire che non termina?????????????
p.s.
vviamente scherzo, la tentazione era troppo forte.












p.s.

salve prof...cm vedi sn un allievo che prende spunto da te...potresti essere un po' più esplicito?...e cmq se ho capito bene, dovrò inserire ++i nel printf dell'istruzione if...giusto???...ma non mi visualizza le 40 carte...fammi sapere...grazie x l'interessamento...e...la battutta!?

"giocala88":
salve prof...cm vedi sn un allievo che prende spunto da te...potresti essere un po' più esplicito?...e cmq se ho capito bene, dovrò inserire ++i nel printf dell'istruzione if...giusto???...ma non mi visualizza le 40 carte...fammi sapere...grazie x l'interessamento...e...la battutta!?
i continui richiami dei moderatori a scrivere con un linguaggio non abbreviato e con una sintassi accettabile senza profusione di punti sospensivi sono passati inascoltati?
inoltre, parere personale, credo che per i tuoi aiuti a fare i compiti potresti usare dei canali privati.
non si tratta di una mancanza di rispetto e solo che sono abituao a scrivere con il linguaggio 'chat'...e comunque dammi tempo di migliorare...scusami....
Beh, sforzati; le regole le hai accettate, cerca di rispettarle, non credo sia poi così difficile scrivere in italiano corretto.