Programma che non termina...

Sk_Anonymous
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
Andrea691
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.

codino75
come fai a dire che non termina?????????????


:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

p.s.:ovviamente scherzo, la tentazione era troppo forte.

Sk_Anonymous
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!? :lol:

wedge
"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!? :lol:


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.

Sk_Anonymous
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....

Luca.Lussardi
Beh, sforzati; le regole le hai accettate, cerca di rispettarle, non credo sia poi così difficile scrivere in italiano corretto.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.