Ir para o conteúdo
JFsat

[Problema] Verificar se um numero existe num vector

Mensagens Recomendadas

JFsat    0
JFsat

Olá a todos,este vai ser o meu primeiro post, e logo a começar com uma dúvida :)

é o seguinte eu quero fazer uma função para verificar se um numero está num vector,tentei fazer com este código

int numero_existe(int chave[6], int numero) 
{
  int i;
    for (i=0 ,i<6,i++) {
        if ( chave(i)=numero) 
        return 1
        else
        return 0 }
        
        }

para ver se um determinado numero está numa chave de totoloto.

se alguem puder dar uma dica!

cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

int numero_existe(int chave[6], int numero) 

{
  int i;
    for (i=0 ;i<6;i++) {
        if ( chave[i] == numero) 
        return 1
        else
        return 0 
     }
        
}

Tinhas dois pequenos erros, as chavetas em vez dos [] e o igual que tem de ser dois símbolos (==).

Para testes de igualdade tens de por dois == , para atribuição usas um.

EDIT: Nos ciclos for, é ; em vez de , :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
JFsat    0
JFsat

Muito obrigado! agora testando a função o problema vem daqui :

main ()
{
     
     printf("Introduza o  número:");
     scanf ("%d",numero);
     if (numero_existe(chave(6),numero) == 1) 
     printf("o numero existe"\n);
     else
     printf("o numero existe"\n);
     
     
     }

quual será o problema?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

Falta declarar a variável numero, declarar e inicializar a chave, o scanf não está correcto e a chamada à função numero_existe também não...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
JFsat    0
JFsat

Desculpem, como o erro vinha daí só pus essa parte do código :s

#include <stdio.h>


int numero_existe(int chave[6], int numero) ; /* declaração da variavel*/

int numero_existe(int chave[6], int numero) 

{
  int i;
    for (i=0;i<6;i++) {
        if ( chave[i] == numero) 
        return 1;
        else 
        return 0; 
        }
        
        }
        
        
int numero;
int chave[6] = {1,2,3,4,5,6};

main ()

{
     
     printf("Introduza o  número:");
     scanf ("%d",numero);
     if (numero_existe(chave[6],numero) == 1) 
     printf("o numero existe"\n);
     else
     printf("o numero existe"\n);
     
     
     }

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

A função numero_existe está mal definida... Se o número não está na primeira posição não podes devolver logo 0, tens que procurar nas restantes posições.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
JFsat    0
JFsat

Já consegui arranjar, bastou tirar o return 0, e assim só retorna 1 se for verdade se não não retorna 1, mas eu queria mesmo que retornasse 0, e n tou a ver como! mas assim ta a funcionar!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
JFsat    0
JFsat

int numero_existe(int chave[6], int numero) 
{
  int i;
    for (i=0;i<6;i++) {
        if ( chave[i] == numero) 
        return 1;
        }
       return 0;
        }

isto parece que funciona! bem,amanha ha mais obrigadao []

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade