Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    3

    Matrice C++

    Ciao a tutti io sono nuovo in questo forum e mi presento sono nanni.. Comunque volevo chiedervi un consiglio perchè non riesco ad arrivare ad una conclusione. In poche parole io sto cercando di creare un programma che con la generazione casuale dei numeri riesca a calcolare qual'e' la sequenza di numeri piu ricorrenti. le sequenze devono essere composte da 6 numeri compresi tra 1 e 30 e non devono ripetersi nella sequenza stessa. Non so se sono riuscito a spiegarmi comunque ora vi posto quello che io ho iniziato a fare. Se siete cosi gentili da aiutarmi possibilmente apportando modifiche sul mio programmino e non generandone di nuovi.
    PS: Non usate paroloni nelle spiegazioni perchè sono un dilettante in questo campo.

    codice:
    #include<stdlib.h>
    #include<iostream.h>
    int I,J,G,H,C,P,K,S,B[6],Z;
    int main()
    {
     srand(time(NULL));
     cout<<"Quante righe ??"<<endl;
     cin>>K;
     int A[K][6];
     do
     {
     C=0;
     for(I=0;I<K;I++)
         for(J=0;J<6;J++)
             A[I][J]=rand()%30+1;
     for(I=0;I<K;I++)
         for(J=0;J<6;J++)
             for(G=0;G<6;G++)
                 if(A[I][J]<A[I][G])
                   {
                    H=A[I][J];
                    A[I][J]=A[I][G];
                    A[I][G]=H;
                   }
     for(I=0;I<K;I++)
         
         for(J=0;J<6;J++)
             if(A[I][J]!=A[I][J+1])
                C=C+1;
    P++;
    cout<<P<<endl;
    }while(C!=(6*K));
     
    for(I=0;I<K;I++)
        for(J=0;J<K;J++)
           { 
            S=0;
            for(G=0;G<6;G++)
                if(A[I][G]==A[J][G])                     Il problema penso che stia in questo passaggio!
                   S++;                                    Ma non ci arrivo aiutooo! :D
            if(S==6)
               for(Z=0;Z<6;Z++)
                   B[Z]=A[I][Z];  
           }  
    
    cout<<endl;
     for(I=0;I<K;I++)
         {for(J=0;J<6;J++)
             cout<<A[I][J]<<"  ";
           cout<<endl;}
     cout<<endl;
     for(I=0;I<6;I++)
        cout<<B[I]<<endl;
     system("PAUSE");
     return 0;
    }

  2. #2

    Moderazione

    Benvenuto nel forum ; ti ricordo che il codice va postato tra tag [code] ... [/code], altrimenti perde l'indentazione, e il titolo dovrebbe essere un po' più significativo. Ora correggo io, tu però dai una letta al regolamento.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    3
    Grazie per la benevolenza!! XD

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Non so se ho capito bene ma tu vorresti generare nrighe casuali...ogni riga deve contenere 6 numeri che siano compresi tra 1 e 30...fattociò vorresti ottenere in output qual'è la sequenza di numeri ripetuta più volte..giusto?

    Compreso ciò sarà più facile aiutarti..

    P.s.
    Cosa dovrebbero rappresentare quella serie di numeri incolonnati prima e dopo le righe di 6 numeri?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    3
    Si esattamente marco hai capito cio che volevo dire solo una cosa le righe devono essere generate con 6 numeri casuali da 1 a 30 ma questi non si devono ripetere nella stessa riga... non capisco quali righe tu intenda..

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Ti spiego la soluzione che adotterei io:
    -Vettore contenente tutti i valori (da 1 a 30)
    -Carico i numeri nella matrice con rand()%30+1..fatto questo azzero l'elemento all'interno del vettore contenente tutti i numeri...prima di caricarne un altro mi assicuro che sia presente all'interno del vettore contenente tutti i numeri e poi lo azzero e così via...ogni volta che termini una riga ricarichi il vettore e fai lo stesso per tutte le righe.
    Quando hai finalmente caricato la matrice in modo giusto non ti resta che confrontare ogni riga.

    Se segui queste linee guida ce la dovresti fare.Se hai dei dubbi chiedi pure

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    EDIT:Invece di cancellare i valori all'interno dell'array,potresti crearne uno di 6 elementi...dove di volta in volta aggiungi un valore,facendo attenzione pera non farlo ripetere..

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.