Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    146

    [C] Aiuto Programma random

    Salve a tutti, ho questo programmino che mi restituisce un numero random con il colore associato(roulette) ma vorrei che ad ogni numero non mi uscisse dal programma ma mi continuasse in modo che se premo invio me ne dia un'altro, come potrei fare?
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #define NO_COLORE 0
    #define NERO 1
    #define ROSSO 2 
    
    int colori[] = {NO_COLORE, ROSSO, NERO, ROSSO, NERO, ROSSO, NERO,
                       ROSSO, NERO, ROSSO, NERO, NERO, ROSSO, NERO, ROSSO, NERO,
                       ROSSO, NERO, ROSSO, ROSSO, NERO, ROSSO, NERO, ROSSO, NERO,
                       ROSSO, NERO, ROSSO, NERO, NERO, ROSSO, NERO, ROSSO, NERO,
                       ROSSO, NERO, ROSSO};
    
    int main() 
    {    
        int num;
    
        srand(time(NULL));
        (num = (rand() % 36));
        if (colori[num] == NO_COLORE) printf("%d", num);
        else if (colori[num] == NERO) printf("%d Nero\n", num);
        else if (colori[num] == ROSSO) printf("%d Rosso\n", num);
        
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Te l'ho gia' suggerito ... devi utilizzare un ciclo while ... e studiarlo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    146
    io me lo sono studiato e sono giunto a questa conclusione ma non vā bene
    codice:
    srand(time(NULL));
        while(num = (rand() % 36){
        if (colori[num] == NO_COLORE) printf("%d", num);
        else if (colori[num] == NERO) printf("%d Nero\n", num);
        else if (colori[num] == ROSSO) printf("%d Rosso\n", num);
    }
    perchč?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E' la condizione nella while che non c'entra nulla ...

    Nella while imposta una condizione sempre vera, come

    while(1)

    e fai in modo, dentro il ciclo, di terminarlo con un

    break;

    quando si verifica la condizione che vuoi (testandola con una if ...)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    146
    scusa ma ho provato a mettere il while e il break cosi:
    codice:
    #define NO_COLORE 0
    #define NERO 1
    #define ROSSO 2 
    
    int colori[] = {NO_COLORE, ROSSO, NERO, ROSSO, NERO, ROSSO, NERO,
                       ROSSO, NERO, ROSSO, NERO, NERO, ROSSO, NERO, ROSSO, NERO,
                       ROSSO, NERO, ROSSO, ROSSO, NERO, ROSSO, NERO, ROSSO, NERO,
                       ROSSO, NERO, ROSSO, NERO, NERO, ROSSO, NERO, ROSSO, NERO,
                       ROSSO, NERO, ROSSO};
    
    int main() 
    {    
        int num;
    
        srand(time(NULL));
        while(1){
        (num = (rand() % 36));
        if (colori[num] == NO_COLORE) printf("%d", num);
        else if (colori[num] == NERO) printf("%d Nero\n", num);
        else if (colori[num] == ROSSO) printf("%d Rosso\n", num);
        break;
        }
        
        return 0;
    }
    Manon vā...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il break deve andare con una if che controlli la pressione di un tasto, non sulle if per la scelta del colore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    146
    ma... la pressione di un tasto come la interpreto in C?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.