Ir ao conteúdo

C Codigo finaliza antes do tempo certo


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Olá, estou aprendendo em c, e criei um codigo para que colete valores para dois vetores, depois retorne se são ou não iguais. Entre tanto, meu codigo roda só até o momento de informar o primeiro vetor, depois finaliza sem terminar. O que posso estar fazendo de errado?

#include <stdio.h>
 
int main(){
    int ler_vetor (int x [3], int y[3]);
    int comparar_vetor (int x[3], int y[3]);
    
    int vet1[3];
    int vet2[3];
    ler_vetor(vet1[3],vet2[3]);
    
    comparar_vetor(vet1[3], vet2[3]);
    
    if (comparar_vetor==1)
       printf ("São iguais");
    else printf ("Não são iguais");  
    
    return 0;
}

int ler_vetor (int x [3], int y[3]){
    for (int i=0; i<3; i++){
        printf ("Digite valor para vet1: ");
        scanf ("%i", &x[i]);
        printf ("Digite valor para vet2: ");
        scanf ("%i", &y[i]);
        
    }
    return 0;
}

int comparar_vetor (int x[3], int y[3]){
    int aux;
    for (int i =0; i<3; i++){
        if (x[i] == y[i])
           aux++;
    }
    
    if (aux == 3)
      return 1;
}

 

  • Curtir 1
  • Solução
Postado

@Estudante0123    o erro é por que você colocou o número de posições no vetor na hora da chamada da função , ler_vetor e comparar_vetor , e o if que compara se retornou 0 ou 1  precisa colocar o nome do vetor , então seu código ficaria assim  :

#include <stdio.h>
#include <locale.h>
int main(){
    setlocale(LC_ALL,"");
    int ler_vetor (int x [3], int y[3]);
    int comparar_vetor (int x[3], int y[3]);

    int vet1[3];
    int vet2[3];
    ler_vetor(vet1,vet2);

    if(comparar_vetor(vet1,vet2)==1)
       printf ("\nSão iguais\n\n");
    else printf ("\nNão são iguais\n\n");

    return 0;
}
int ler_vetor (int x [3], int y[3]){
    int i;
    for (i=0; i<3; i++){
        printf ("Digite valor para vet1: ");
        scanf ("%i", &x[i]);
        printf ("Digite valor para vet2: ");
        scanf ("%i", &y[i]);
    }
    return 0;
}
int comparar_vetor (int x[3], int y[3]){
    int aux=0,i;
    for (i =0; i<3; i++){
        if (x[i] == y[i])
           aux++;
    }
    if (aux == 3)
      return 1;
    else
        return 0;
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!