JFsat Posted November 18, 2007 at 10:23 PM Report Share #148477 Posted November 18, 2007 at 10:23 PM 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 Link to comment Share on other sites More sharing options...
Hipnoted Posted November 18, 2007 at 10:35 PM Report Share #148487 Posted November 18, 2007 at 10:35 PM 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 , 🙂 "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência" Link to comment Share on other sites More sharing options...
JFsat Posted November 18, 2007 at 10:52 PM Author Report Share #148493 Posted November 18, 2007 at 10:52 PM 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? Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 18, 2007 at 10:54 PM Report Share #148494 Posted November 18, 2007 at 10:54 PM 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... Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
JFsat Posted November 18, 2007 at 10:56 PM Author Report Share #148496 Posted November 18, 2007 at 10:56 PM 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); } Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 18, 2007 at 10:59 PM Report Share #148498 Posted November 18, 2007 at 10:59 PM Continuas com dois erros: scanf("%d",&numero); numero_existe(chave,numero); Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
JFsat Posted November 18, 2007 at 11:03 PM Author Report Share #148499 Posted November 18, 2007 at 11:03 PM Obrigado! está é sempre a dar me que o numero nao existe :s à excepção do 1 Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 18, 2007 at 11:09 PM Report Share #148501 Posted November 18, 2007 at 11:09 PM Pois está... A função numero_existe está a retornar logo depois de testar o primeiro elemento. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
JFsat Posted November 18, 2007 at 11:11 PM Author Report Share #148503 Posted November 18, 2007 at 11:11 PM Pois, mas nao percebo porque, se eu ponho um dois supostamente devia retornar 1 ! Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 18, 2007 at 11:14 PM Report Share #148504 Posted November 18, 2007 at 11:14 PM 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. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
JFsat Posted November 18, 2007 at 11:21 PM Author Report Share #148507 Posted November 18, 2007 at 11:21 PM 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! Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 18, 2007 at 11:22 PM Report Share #148509 Posted November 18, 2007 at 11:22 PM Depois de testar todos os valores, devolves 0. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
JFsat Posted November 18, 2007 at 11:26 PM Author Report Share #148512 Posted November 18, 2007 at 11:26 PM 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 [] Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now