Ir ao conteúdo
  • Cadastre-se

C Codigo finaliza antes do tempo certo


Ir à solução Resolvido por devair1010,

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

  • Solução

@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
Link para o comentário
Compartilhar em outros sites

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...