Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [C++] Confrontare vettore con righe matrice

    Ciao ragazzi, sto cercando di creare una funzione di tipo bool che possa confrontare gli elementi di un vettore con (tutte) le righe di una matrice. Per comodità il riempimento del vettore e il riempimento di riga e di colonna della matrice è uguale.
    Inoltre potreste correggermi l'indentazione ?

    codice:
    bool confronta(matrice m, vettore v,int &riemp){
    
     int confronto=0; 
     int j=0;
    
    for(int i=0;i<riemp;i++){
       if(m[j][i]==v[i])
       confronto=1;
                                   }
       if(confronto==1)
         cout<<"sono uguali"<<"\n";
       else 
         cout<<"non sono uguali"<<"\n"; 
                                                                    }
    //In questo modo la funzione che ho creato confronta il vettore solo con la prima riga...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    In questo modo non ti assicuri che tutti gli elementi di una riga siano uguali perché il flag

    confronto

    diventa 1 anche per un solo elemento verificato. E se gli altri sono diversi rimane 1.

    Per le altre righe, basta che utilizzi un altro for per j
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ho aggiunto il ciclo for per j. Invece non mi è molto chiaro il fatto del flag confronto. Ho aggiunto solo un "else". Potresti aiutarmi ?

    codice:
    bool confronta(matrice m, vettore v,int &riemp){
    
     int confronto=0; 
    
    for(int j=0;j<riemp;j++)      {
     for(int i=0;i<riemp;i++){
       
       if(m[j][i]==v[i])
       confronto=1;
       
       else confronto=0;
                             }
      
       if(confronto==1)
         cout<<"sono uguali"<<"\n";
       else 
         cout<<"non sono uguali"<<"\n"; 
                                  }                  }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quando si scrive del codice, si devono avere degli obiettivi precisi.

    Quando deve risultare uguale=1 ??
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Lo scopo della funzione è ritornare true o false per dire se la riga è uguale a tutte le righe della matrice.Direi che non serve stampare il risultato, questo puoi farlo nel main in base al risultato della funzione.
    Io fossi in te userei la strategia contraria: piuttosto il risultato deve essere true e al primo confronto fallito esci da entrambe i cicli (non serve fare ulteriori confronti) e setti a false il risultato:

    codice:
    bool confronta(matrice m, vettore v,int &riemp)
    {
        bool result=true;
        for(int i=0;i<riemp&&result;i++)
            for(int j=0;j<riemp&&result;j++)
            {...}  // al primo confronto fallito setti result a false
        return result;
    }

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da ramy89
    Lo scopo ...
    ... a tutte o almeno ad una ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    La funzione deve confrontare il vettore con tutte le righe e dirmi se esiste o no una riga della matrice uguale a quella del vettore

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Allora il codice di ramy non va bene, perché se la prima riga fallisce, il codice non cerca nella seconda ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    La mia dice se tutte le righe di quella matrice sono uguali a quel vettore.

  10. #10
    ragazzi davvero non ci riesco. Potreste abbozzare una risposta ?

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.