• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JFsat

[Problema] Verificar se um numero existe num vector

13 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 , :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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);
     
     
     }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continuas com dois erros:

scanf("%d",&numero);

numero_existe(chave,numero);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado! está é sempre a dar me que o numero nao existe :s à excepção do 1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois está... A função numero_existe está a retornar logo depois de testar o primeiro elemento.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, mas nao percebo porque, se eu ponho um dois supostamente devia retornar 1 !

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 []

0

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