Ciao Ragazzi, ho un problema con un esercizio di c++
la traccia della funzione mi è abbastanza chiara, il problema è un quesito presente nel main, ovvero non so come considerare soltanto i valori aggiunti dopo l'esecuzione della funzione;
vi scrivo la traccia:
la traccia della funzione mi è abbastanza chiara, il problema è un quesito presente nel main, ovvero non so come considerare soltanto i valori aggiunti dopo l'esecuzione della funzione;
vi scrivo la traccia:
- Per ogni posizione k della lista a, la funzione deve scambiare a[k] con b[k] se nel vettore c esiste almeno un valore uguale ad a[k]. Inoltre, la funzione restituire con l’istruzione return il numero di valori scambiati. Attenzione i vettori a e b potrebbero aver un numero diverso di elementi, quindi non utilizzare posizioni dei vettori a e b che non esistono.
- il main dice:
- eseguire la funzione scambia applicata ai vettori x, y e z scrivendo il risultato nella variabile t;
- inserire nella variabile trovato il valore 1 se l’esecuzione della funzione scambia (punto precedente) ha scambiato due valori pari; in caso contrario la variabile trovato deve contenere il valore 0. vi scrivo il codice che ho fatto io.
-
C++:
#include <iostream> #define DIM 6 #define DIMb 5 using namespace std; int scambia(int a[],int b[],int c[]) { int i, temp, j, k, cont=0; for (i = 0; i < DIM; i++) { for (k = i; k < DIMb; k++) { for (j = 0; j < DIM; j++) { if (a[i] == c[j]) { temp = a[i]; a[i] = b[k]; b[k] = temp; cont++; } } } } return cont; } int main() { int x[DIM], y[DIMb], z[DIM], i, t; for (i = 0; i < DIM; i++) { cin >> x[i]; } for (i = 0; i < DIMb; i++) { cin >> y[i]; } for (i = 0; i < DIM; i++) { cin >> z[i]; } t = scambia(x, y, z); for (i = 0; i < DIM; i++) { } }