Ciao a tutti , dovrei svolgere il seguente esercizio
Esercizio 2. Si scriva un programma C che:
a. legga 2 vettori di N elementi interi (con N costante predefinita)
b. stabilisca se i due vettori contengono gli stessi elementi, anche disposti in ordine differente
Esempio: siano dati i due vettori seguenti:
v1 ? 15 3 12 13 29
v2 ? 15 29 13 3 12
questi contengono gli stessi valori, anche se in posizioni differenti.
Invece, i due vettori seguenti:
v1 ? 11 3 12 18 29
v2 ? 12 29 13 4 12
non contengono gli stessi valori.
Questa è la mi soluzione
#define N 5
int main()
{
int vett1[N],vett2[N],i,k,trovato;
printf("Inserisci il primo vettore di 5 elementi: \n");
for(i=0;i<N;i++)
{
scanf("%d",&vett1[i]);
}
printf("Inserisci secondo vettore di 5 elementi: \n");
for(i=0;i<N;i++)
{
scanf("%d",&vett2[i]);
}
trovato=1;
for(i=0;i<N;i++ && trovato==1)
{
trovato=0;
for(k=0;k<N;k++ && trovato==0)
{
if(vett1[i]==vett2[k])
{
trovato=1;
}
}
}
if(trovato==1)
{
printf("I due vettori sono uguali");
}
else
{
printf("I due vettori sono diversi");
}
return 0;
C'è un problema : nel for con trovato dove c'è la condizione trovato==1 capita che entra anche se trovato è =0 e non capisco proprio il perché ( l'ho testato con il debug)
Come risolvo?
Grazie!!