Este segundo trabalho consiste no Exercício 8 da "Lista 1", cujo enunciado é
Fazer um algoritmo que leia dois vetores (A e B) de 6 posições e crie um terceiro vetor (C) com a interseção dos dois primeiros, isto é, coloque em C apenas os elementos que existem em A e que também existem em B. Mostrar C.
O códig0-fonte está abaixo.
Note que o tamanho dos vetores é definido por uma constante, facilitando manutenções futuras.
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
const int TAMANHOVETOR = 6;
// Definição e leitura do vetor A
float A[TAMANHOVETOR];
int IndiceA = 0;
for (IndiceA=0; IndiceA < TAMANHOVETOR; IndiceA++)
{
printf("Digite o elemento nro. %i do Vetor A: ", IndiceA + 1);
scanf("%f",&A[IndiceA]);
}
printf("\n");
// Definição e leitura do vetor B
float B[TAMANHOVETOR];
int IndiceB = 0;
for (IndiceB=0; IndiceB < TAMANHOVETOR; IndiceB++)
{
printf("Digite o elemento nro. %i do Vetor B: ", IndiceB + 1);
scanf("%f",&B[IndiceB]);
}
// Definição e montagem do Vetor C (A intersecao B)
float C[TAMANHOVETOR];
int NroElementosC = 0;
for (IndiceA=0; IndiceA < TAMANHOVETOR; IndiceA++) // Para cada elemento de A
{
for (IndiceB=0; IndiceB < TAMANHOVETOR; IndiceB++) // Procura um correspondente em B
{
if (A[IndiceA] == B[IndiceB])
{
C[NroElementosC] = A[IndiceA]; // Quando encontra, adiciona este elemento
NroElementosC ++; // em C e incrementa o indice de C
break; // e sai do loop de comparacao pois basta encontrar um elemento igual.
}
}
}
printf("\nIntersecao de 'A' com 'B'\n");
// Impressao do Vetor C
int IndiceC = 0;
for (IndiceC=0; IndiceC < NroElementosC; IndiceC++) printf("C[%i]: %f\n",IndiceC + 1, C[IndiceC]);
printf("\n");
// Pause para que o resultado possa ser avaliado na tela
system("PAUSE");
return EXIT_SUCCESS;
}
Abaixo, screenshot de uma execução: