Code Correction in C

0

I made the code below that basically is to read two vectors A and B, and accumulate the values in vector C.

At the end of the code, I need to show if there are repeated values and print a message to the user. If there is no repeating value, print message as well.

The logic is going wrong. Could you show me what's wrong, please?

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main()
{
    setlocale(LC_ALL,"portuguese");
    int vetA[5], vetB[5], vetC[5];
    int i = 0, j =0;

    // A) LER 5 NÚMEROS NO VETOR A
    for (i = 0; i < 5; i++)
    {
        printf("\nPreencha o Vetor [A] \n");
        scanf("%d", &vetA[i]);
    }
    // B) LER 5 NÚMEROS EM VETOR B
    for (i = 0; i < 5; i++)
    {
        printf("\nPreencha o Vetor [B]\n");
        scanf("%d", &vetB[i]);
    }

    // C)VETOR C RECEBE OS VALORES DOS VETORES A e B E ACUMULA

    printf("\nO Vetor [C] recebe a soma dos Vetores [A] e [B]\n");
    for (i = 0; i <5; i++)
    {
        vetC[i] = vetA[i]+vetB[i];
    }
    for (i = 0; i < 5; i++)     
    {
    // D) IMPRIMIR  O VETOR A
        printf("
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main()
{
    setlocale(LC_ALL,"portuguese");
    int vetA[5], vetB[5], vetC[5];
    int i = 0, j =0;

    // A) LER 5 NÚMEROS NO VETOR A
    for (i = 0; i < 5; i++)
    {
        printf("\nPreencha o Vetor [A] \n");
        scanf("%d", &vetA[i]);
    }
    // B) LER 5 NÚMEROS EM VETOR B
    for (i = 0; i < 5; i++)
    {
        printf("\nPreencha o Vetor [B]\n");
        scanf("%d", &vetB[i]);
    }

    // C)VETOR C RECEBE OS VALORES DOS VETORES A e B E ACUMULA

    printf("\nO Vetor [C] recebe a soma dos Vetores [A] e [B]\n");
    for (i = 0; i <5; i++)
    {
        vetC[i] = vetA[i]+vetB[i];
    }
    for (i = 0; i < 5; i++)     
    {
    // D) IMPRIMIR  O VETOR A
        printf("%pre%");   
        printf("\nO valor do Vetor A na Posição: %d é = %d\n",i+0, vetA[i]);

    }

    for (i = 0; i < 5; i++)
    {
    // E) IMPRIMIR  O VETOR B
        printf("%pre%");   
        printf("\nO valor do Vetor B na Posição: %d é = %d\n",i+0,vetB[i]);
    }
    for (i =0; i < 5; i++)
    {
    // IMPRIME O VALOR DO VETOR C

        printf("%pre%");
        printf("\nO valor do Vetor C na Posição: %d é = %d\n", i+0, vetC[i]);
    }

    // NA CONDIÇÃO SE EXISTIR VALORES REPETIDOS, IMPRIMIR MENSAGEM 
    // SE NÃO EXISTIR VALORES REPETIDOS IMPRIMIR MENSAGEM TAMBÉM 
    for (i =0; i < 5; i++)
    {
        for (j=0; j<5; j++)
        {
            if (vetC[i] == vetC[j])

            {
                printf("\nExiste valor Repetido\n");
            }
            if (vetC[i] != vetC[j])
            {
                printf("\nNão Existe valor Repetido");

               }
           }

       }

    getch();
    return(0);
}
"); printf("\nO valor do Vetor A na Posição: %d é = %d\n",i+0, vetA[i]); } for (i = 0; i < 5; i++) { // E) IMPRIMIR O VETOR B printf("%pre%"); printf("\nO valor do Vetor B na Posição: %d é = %d\n",i+0,vetB[i]); } for (i =0; i < 5; i++) { // IMPRIME O VALOR DO VETOR C printf("%pre%"); printf("\nO valor do Vetor C na Posição: %d é = %d\n", i+0, vetC[i]); } // NA CONDIÇÃO SE EXISTIR VALORES REPETIDOS, IMPRIMIR MENSAGEM // SE NÃO EXISTIR VALORES REPETIDOS IMPRIMIR MENSAGEM TAMBÉM for (i =0; i < 5; i++) { for (j=0; j<5; j++) { if (vetC[i] == vetC[j]) { printf("\nExiste valor Repetido\n"); } if (vetC[i] != vetC[j]) { printf("\nNão Existe valor Repetido"); } } } getch(); return(0); }
    
asked by anonymous 24.08.2018 / 14:53

1 answer

1

I understand that no error is displayed, only the comparison logic is wrong.

I suggest you create a variable to control whether or not the values are repeating; if not, display the message at the end of the code.

//variável de controle de indicação se existem valores repetidos
int totalRepetido = 0; 

for (i=0; i<5; i++)
{
  for (j=i+1; j<5; j++) //iniciar j uma posição depois de i para que não compare duas vezes os mesmos valores
  {
    if (vetC[i] == vetC[j])
    {
      printf("\nValor %d nas posicoes %d e %d repetidos!", vetC[j], i, j);
      totalRepetido++;
      break;// encontrado um valor repetido, pode parar a execução do for
    }
  }
}

if (totalRepetido == 0)
{
  printf("\nNão Existe valor Repetido");
}
    
24.08.2018 / 15:09