Secondo voi dove sbaglio???

Pubblicità

assassins

Utente Attivo
Messaggi
25
Reazioni
0
Punteggio
25
salve sono nuovo di questo forum e premetto che è un ottimo forum con notizie molto interessanti e ottimi aiuti, cmq il mio problema era che dato un array bidimensionale 3x3
devo confrontare in ogni riga che non ci siano numeri uguali e caso mai in queste righe ci siano numeri uguali devo mettere la scritta es: il numero 3 e presente nella riga 1 e 2.
Allora io ho iniziato col caricare i numeri nella matrice facendo il for poi ho fatto di nuovo il for per visualizzare la matrice poi ho provato a fare un altro for dove confronto ogni riga ma e li che mi blocco cioe non mi va potete darmi una mano???
uso il dev c++ se riuscite a risolverlo potete postarmi l codice dove c'è il confronto???
cioe io per esempio ho messo gli indici a,b ora vi posto un po come ho scritto io il confronto ovviamente la mtrice l'ho provata a fare 2x4 cosi solo per prova cmq
for(a=0;a<2;a++){
for(b=0;b<4;b++){
if(A[0]==A[1]){
s=A[a];
printf("Il numero %d e' contenuto in entrambe le righe\t",s);

per favore aiutatemi mi serve per domani forse ho fatto un errore scemo e nemmeno me ne sono accorto vi prego aiutatemi
grazie mille
 
Allora, se ho ben capito devi verificare se dato un numero della matrice, questo è presente in altre righe della matrice...innanzitutto non capisco perchè se la matrice è 3x3 allora a<2 e b<4:veach:
Comunque se vuoi il codice potresti fare una cosa così:

Codice:
#include <stdio.h>

int main(void)
{  
     int a[3][3]={{2,1,4},{1,5,7},{5,1,8}};
     int esiste=0;

     esiste=controlla(a,3);

     if(esiste==0)
            printf("Non esiste alcun elemento ripetuto\n");

     return esiste;
}

//Funzione che scorre tutto l'array

int leggi(int a[][dim],int dim)
{
    int i,j,ripetuto=0,esiste=0;
    for(i=0;i<dim;i++)
    {
        for(j=0;j<dim;j++)
        {
               ripetuto=controlla(a[i][j],i,a,dim);
               if(ripetuto!=0)//se è true
               {
                      printf("Il numero &d e' presente su altre righe dell'array",a[i][j]);
                      esiste=1;//la funzione leggi alla fine restituirà true
               }

        }
        ripetuto=0;//resetto a false
    }
    return esiste;
}

int controlla(int n,int riga,int a[][dim],int dim)
{
    int i,j;
    for(i=0;i<dim;i++)
    {  
        if(i==riga)
               continue;
        for(j=0;j<dim;j++)
        {
               if(n==a[i][j])//se esiste in una riga diversa da quella di riferimento
               {
                     return 1;//se lo trova restituisce subito true
               }

        }
        return 0;//se in tutto il ciclo non l'ha trovato restituisce false-0
    }

}


Non l'ho provato ma dovrebbe funzionare e fare quello che vuoi tu...
 
Pubblicità
Pubblicità
Indietro
Top