Announcement

Collapse
No announcement yet.

90 numeri senza ripetizione - Supporto con Array

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 90 numeri senza ripetizione - Supporto con Array

    PHP Code:
    /*
    *
    * Premettendo che questo algoritmo è applicabile solo per *piccoli range di interi, non mi piace!
    *
    */

    #include <st***.h>
    #include <stdlib.h>


    int main void ) {

        
    int vet[90]; // creazione array da 90
        
    int i;
        
    int index;
        
    int temp;
        
    int num;
        
        for (
    i=0;i<90;i++){ // arrey rimepito di num da 1 a 90
            
    vet[i]=i+1;
        }
        
        for (
    i=0;i<90;i++){
            
    index=(rand() % (90-i)); // calcolo numero tra 90 - i
            
    numvet[index]; // identificazione indice vet
            
    printf("Numero uscito %d\n",num); // stampa num vet[i]
            
    temp=vet[89-i]; // salvataggio last num vet
            
    vet[89 i] =num// swap dei due
            
    vet[index]=temp;
        }
        
        

    | VFX Artist, C++ Programmer, HW Overclocker | Web: xgiovio.com Email: xgiovio@gmail.com Twitter: @xgiovio

  • #2
    Mia risoluzione
    PHP Code:
    #include <stdlib.h>
    #include <st***.h>
    #include <time.h>
    #define dim 90
    main()
    {
    int i;
    int n;

    int numerone[dim];//vettore che contiene i nostri numeri
    srand(time(NULL));
    for(
    i=0;i<dim;i++)//caricamento vettore
    {
    numerone[i] = i+1;
    }
    //fine caricamento
    i=0;
    int a=dim//visto che con le macro non è possibile effettuare decrementi inizializziamo un'altra variabile
    while(a!=0){
    rand()%dim;
    printf("Il %d numero estratto e': %d\n",i+1,numerone[n]);
    numerone[n]=numerone[a];
    i++;
    a=a-1;
    }


    Comment


    • #3
      Estrazione numeri senza ripetizioni

      Questa è la mia:
      PHP Code:
      /*****************************************************************************
      *
      *
      * Programma "Gioco della tombola"
      *
      *
      *****************************************************************************/

      #include <st***.h>
      #include <stdlib.h>
      #include <time.h>
      #define SIZE_BOARD 90
      #define ESC 1
      #define END 0

      void tabellone(short int *board);
      int estrazione(short int *board);
      void mostra_tabellone(short int *board_final);

      int
      main
      (void)

      {
          
      short int sacchetto[SIZE_BOARD];
          
          
      printf("\v");
          
      printf("***********   *****    ***   ***  ******     *****    *         *******\n");
      printf("     *     *   *   *  * *  *  *     *   *     *   *        *       *\n");
      printf("     *    *    *  *   *   *  *     *  *       *  *        *       *\n");
      printf("     *    *    *  *       *  ******   *       *  *       * ***** *\n");
      printf("     *    *    *  *       *  *     *  *       *  *       *       *\n");
      printf("     *     *   *   *       *  *     *   *     *   *       *       *\n");
      printf("     *      *****    *       *  ******     *****    *******  *       *\n");
          
          
      tabellone(sacchetto);
          
          if (
      estrazione(sacchetto) == END) {
              
      printf("Tutti i numeri sono stati estratti!\n");
          }
          
          
      printf("Fine del gioco.\n");
          return 
      END;
      }

      void tabellone(short int *board)

      {
      short int i// Contatore
          
      for (0SIZE_BOARDi++) { // Riempimento array
      board[i] = 1;
      }
          
      }

      int estrazione(short int *board)

      {
      short int jk// Contatori
      short int conferma 0// Carattere per confermare l'estrazione di un numero
      short int indice_numeronumero_estratto;
              
      short int board_final[SIZE_BOARD]; // Tabellone con gli 0 che rappresentano i numeri estratti
          
          
      tabellone(board_final);
          
      for (
      1SIZE_BOARD0k++, j--) {
      while (
      conferma != && conferma != && conferma != && conferma != 4) { // Estrazione o uscita
      printf("\nDigita \"1\" per estrarre un numero.\n");
      printf("Digita \"2\" per uscire dal programma.\n");
                              
      printf("Digita \"3\" per estrarre automaticamente tutti i numeri.\n");
                              
      printf("Digita \"4\" per visualizzare il tabellone con i numeri estratti.\n");
      scanf("%hd", &conferma);
      }

      if (
      conferma == 2) { // Termine programma
      return ESC;
      }
              
                      else if (
      conferma == 4) { // Mostro tabellone
                              
      mostra_tabellone(board_final);
                              
      k--;
                              
      j++;
                      }
              
                      else {
                              
      srand(time(NULL)); // Insemino la funzione random
                              
      indice_numero rand() % j// Selezione indice numero
                              
      numero_estratto board[indice_numero]; // Prendo il numero estratto
                  
                              
      board_final[numero_estratto 1] = 0// Lo cancello dal tabellone
                  
                              
      printf("Il %hd° numero estratto è:%hd.\n"knumero_estratto);
                              
      board[indice_numero] = board[j-1]; // Tolgo il numero estratto
                       
      }
              
                       if (
      conferma != 3) {
                              
      conferma 0;
                       }
      }
      return 
      END;
          
      }

      void mostra_tabellone(short int *board_final)

      {
          
      int t// Contatore
          
          
      printf("\vLo \"0\" rappresenta i numeri gi?* estratti.\n\v");
          
          for (
      0SIZE_BOARDt++) { // Stampo tabellone
              
      printf("%2hd "board_final[t]);
              
              if ((
      t+1) % 10 == 0) { // Stampo nuova riga
                  
      printf("\n\v");
              }
          }

      Last edited by federicocozza; 11-24-2012, 08:01 PM.

      Comment


      • #4
        federico si è superato (:
        | VFX Artist, C++ Programmer, HW Overclocker | Web: xgiovio.com Email: xgiovio@gmail.com Twitter: @xgiovio

        Comment


        • #5
          nice!!!!!!
          Originally posted by TheAvenger View Post
          Mia risoluzione
          Code:
          #include <stdlib.h>
          #include <st***.h>
          #include <time.h>
          #define dim 90
          main()
          {
          int i;
          int n;
          
          int numerone[dim];//vettore che contiene i nostri numeri
          srand(time(NULL));
              for(i=0;i<dim;i++)//caricamento vettore
              {
              numerone[i] = i+1;
              }//fine caricamento
          i=0;
          int a=dim; //visto che con le macro non è possibile effettuare decrementi inizializziamo un'altra variabile
                  while(a!=0){
                  n = rand()%dim;
                  printf("Il %d numero estratto e': %d\n",i+1,numerone[n]);
                  numerone[n]=numerone[a];
                  i++;
                  a=a-1;
                  }
          
          }
          | VFX Artist, C++ Programmer, HW Overclocker | Web: xgiovio.com Email: xgiovio@gmail.com Twitter: @xgiovio

          Comment

          Working...
          X

          Google Profile


          My name is Giovanni Di Grezia, but people call me xgiovio.

          Here is my homepage:.

          I'm a VFX Artist and Software Developer.

          Giovanni Di Grezia