Dubbio confronto elementi.

di il
1 risposte

Dubbio confronto elementi.

Ciao a tutti, ho un problema nel confrontare degli elementi di una matrice in C++. In pratica il programma chiede di vedere se una matrice ha tutti elementi "zeri" sopra la diagonale principale (credo che sia una matrice sia triangolare superiore).

Comunque ho realizzato il programma che stampa tutti gli elementi subito dopo la diagonale. Mi spiego meglio, ho questa matrice:
4*4

|1,0,0,0|
|1,2,0,0|
|1,1,3,0|
|1,1,1,4|

Il programma stampa:
000000 (ossia tutti gli zeri che ci sono dopo ciascun elemento della diagonale).
Quindi non mi rimane che controllare se questi elementi sono tutti uguali ma quando vado a fare il confronto mi dice che alcuni elementi non lo sono fra di loro.

Vi posto il programma:
http://pastebin.com/9hJ3q1h

Ps: L'ultima riga (ultimo for) serve per controllare se tutti gli elementi dell'ultima riga sono diversi da zero (dovrebbe funzionare).

Vi posto l'output del confronto tra gli zeri.
Controlla a due a due, se sono uguali stampa "si" altrimenti "no".

si
si
no
si
no
si
Non capisco come fa a stampare "no" se stampa tutti zeri.

Grazie delle eventuali risposte

1 Risposte

  • Re: Dubbio confronto elementi.

    La parte che non va bene e questa:
     while(k < dim-2)  // cosi facendo non scorri tutta la matrice perchè le linee da prendere in esame sono 3 e non due
                    {
                            for(int j = 1; j < dim; j++)
                            {
                                    cout << a[k][j];
     
                                    if(j == dim-1) // a che cosa ti serve questo confronto se lo puoi fare automaticamente nel ciclo for?
    
    la soluzione dovrebbe essere questa.
    while ( k <dim)
           {
    for (int j=0;i < dim;i++) // prendo anche l'ultima colonna
       {
          if ( j > k) // mi serve per eliminare gli elementi sia della diagonale che precedenti a essa
            {
               // metti qui i confronti che devi mettere e la parte di codice della stampa
            }
        }
    k++;
           }
    spero di esserti stato di aiuto
Devi accedere o registrarti per scrivere nel forum
1 risposte