verificare condizione dopo esecuzione della funzione

Stato
Chiusa ad ulteriori risposte.

ylenia987654321

Nuovo Utente
5 Mag 2020
2
1
3
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:
  • 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:
    1. eseguire la funzione scambia applicata ai vettori x, y e z scrivendo il risultato nella variabile t;
    2. 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.
    3. 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++)
          {
      
          }
      }
 
Stato
Chiusa ad ulteriori risposte.