Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [c++] Tombola

  1. #1

    [c++] Tombola

    premetto che ho gia cercato nel forum, ma dalle discussioni non ci ho capito granchè !
    Come da titolo ho scritto il seguente codice per fare un programma di estrazione per la tombola
    Il programma parte ma genera solo lo stesso numero e non arriva neanche a 90 numeri !
    Come mai?

    ps. Ho iniziato il 3° di informatica a settembre e la prof non ha ancora spiegato le matrici, ma ho comunque voluto provare a farlo, visto che è da un paio di natali che ho quest'idea.

    Ecco il codice:
    codice:
    #include <iostream>
    #include <time.h>
    #include <stdlib.h>
    using namespace std;
    int risp;
    const int r=9;
    const int c=10;
    int matrice [r] [c];
    void carica (int m[r] [c]);
    void stampa (int m[r] [c]);
    bool ricerca (int m[r] [c],int e);
    int main()
    {
    	cout<<"                    +-----------------------------------+"<<endl;
        cout<<"                    | Benvenuto nel gioco della Tombola |"<<endl;
        cout<<"                    +-----------------------------------+"<<endl;
    	cout<<"                                                                          v 1.0"<<endl;
        cout<<endl;
        cout<<endl;
        cout<<endl;
       
    	do
       {
                cout<<" Premi 1 per estrarre un numero;"<<endl;
                cout<<" Premi 2 per visualizzare i numeri;"<<endl;
                cout<<" Premi 3 per uscire."<<endl;
                
                cin>>risp;
                switch(risp)
                {
                            case 1: carica (matrice);cout<<endl;break;
                            case 2: stampa (matrice);cout<<endl;break;
                }
    	}
    	 while(risp!=3);
    	 cout<<" ";
    }
    
    
    //Estrazione numero
    void carica (int m[r] [c])
    {
    	int e;
    	for(int i=0;i<r;i++)
    	{
    		for(int j=0;j<c;j++)
    		{
    			srand(time(NULL));
    			e=rand()%91;
    			if(ricerca(m,e)==false) //ricerca numero uguale
    			{
    				m[r][c]=e;
    				cout<<m[r] [c]<<endl;
    			}
    		}
    	}
    }
    
    
    //ricerca numero uguale
    bool ricerca (int m[r] [c],int e)
    {
    	int i=0;
    	while(m[r] [c]!=e && i!=r)
    	{
    		i++;
    		if(m[r] [c]==e)
    		   return true;
    		else
    		   return false;
    	}
    }
    
    
    //stampa matrice
    void stampa (int m[r] [c])
    {
    	for(int i=0;i<r;i++)
    	{
    		for(int j=0;j<c;j++)
    		{
    			cout<<m[r] [c]<<endl;
    	    }
        }
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    srand(time(NULL));

    va eseguito solamente una volta all'inizio del programma
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    quindi lo metto fuori dalla procedura di estrazione, nel main?

  4. #4
    Originariamente inviato da simo132
    quindi lo metto fuori dalla procedura di estrazione, nel main?
    Sì.

    Tra parentesi, il codice va postato nei tag [co­de] ... [/co­de], altrimenti perde l'indentazione. Questa volta ho sistemato io, in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    ok !


    ultimissima cosa...per far generare il numero quando voglio io invece che insieme dove dovrei modificare?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.