How to compare two vectors and exclude equal values of the vector with the largest number of characters? In "C"

0

Generate and display sets A - B and B - A

A and B are both vectors with user-defined sizes

A - random values

B - user defined

For example: Vector A = (10), (5), (7), (8), (12)

vector B = (10), (8)

A-B

New Vector A = (5), (7), (12)

Code that I thought ***

int pertinencia(int vetor[], int tam, int ele) {
  int i, pq = 0;
  for (i = 0; i < tam; i++) {
    if (vetor[i] == ele) {
      return 1; //Este elemento pertence a o vetor
    } else {
      pq++;
    }
  }
  if (pq == tam) {
    return 0; //Este elemento nao pertence a o vetor
  }

}

int main() {
  int a[] = {
    10,
    5,
    7,
    8,
    12
  };
  int b[] = {
    10,
    8
  }, c[12];
  int i;
  for (i = 0; i < 2; i++) {
    if (!pertinencia(a, 5, b[i])) {
      printf("%d ", a[i]);
    }
  }

}
    
asked by anonymous 14.06.2018 / 15:01

1 answer

0
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main(int argc, char** argv)
{

   int vetor_1[] = {10, 5, 7, 8, 12}, vetor_2[] = {10, 8}, indice = 0, resultado, i;

   while(indice != 2)  // indice  for diferente do tamanho do segundo vetor vai fazer
   {
     resultado = vetor_2[indice];
     for(i = 0; i < 5; i++)
     {
        if(vetor_1[i] == resultado)
        {
            vetor_1[i] = -1;       // se encontrar valor igual vai substituir por -1
            break;
        }
     }
    indice++;
   }

  for(i = 0; i < 5; i++)
  {
    if(vetor_1[i] >= 0)
    {
        printf("%d\n", vetor_1[i]);  // mostra os valores que são maiores que -1
    }
  }

   return 0;
}
    
14.06.2018 / 19:59