terça-feira, 5 de maio de 2015

Programação de Computadores I - Solução de exercício

Senhores alunos:

Segue solução, feita em sala pelo aluno Marcos, do exercício que pede para encontrar os elementos comuns entre 2 vetores, sem repetição. Adicionei comentários para melhor compreensão da solução, que ficou bastante enxuta.

Até quinta!

#include <stdio.h>

// Definições dos numeros inteiros

#define N 6
#define M 6

int main()
{
    unsigned short int i, j, k, L = 0, flag = 0;
    // Flag = 0: encontra elemento igual, grava em C[M]
    int A[N] = {0,1,2,3,2,0}, B[M] = {5,7,3,3,0,2}, C[M];
    printf("Numeros Repetidos entre A e B:\n\n");
    for(i = 0; i < N; i++)      // Testa todos os
    {                           // elemento de A
        for(j = 0; j < M; j++) // contra os elementos B
        {
            if(A[i] == B[j])    // Encontrou igual
                {
                flag = 0; // flag preparada para busca
                for(k = 0; k < L; k++) // Verifica se já
                {                      // não está em C
                    if(A[i] == C[k])   // se está
                    {                   // flag = 1
                        flag = 1;
                        break;          //achou,  não precisa
                    }                   // buscar mais
                }
                if(flag == 0)   // se saiu com flag = 0
                {
                    C[L]=A[i];  // coloca em C
                    printf("%d ", C[L]); // imprime C[L]
                    L++; // o tamanho do vetor C aumento
                }
            }
        }
    }
    printf("\nPROGRAMA ENCERRADO!\n");
    return 0;
}

Nenhum comentário:

Postar um comentário