quero apenas que mostre um único resultado [RESOLVIDO]

1. quero apenas que mostre um único resultado [RESOLVIDO]

rafael dos santos
ubutex

(usa Outra)

Enviado em 14/03/2013 - 14:36h

pessoal tenho que reponde essa questão "Escreva um algoritmo que leia um vetor com 10 posições de números inteiros e verifique se um determinado valor, também digitado pelo usuário, está no vetor. Se estiver, informe a posição desse elemento no vetor. Caso o elemento não esteja no vetor, apresente uma mensagem informando tal situação"

já fiz a maior parte mas na hora do resultado saem todas as respostas possíveis eu sei que o laço faz todos os loop e mostra todos os resultados mas eu apenas quero que mostre 1 resultado ai vai meu código abaixo

#include<stdio.h>

main()
{
int vetor[10];
int i,valor,pos;

for(i=0;i<10;i++){
printf("Digite uma numero");
scanf("%d", &vetor);
}
printf("Digite um numero para saber \n");
scanf("%d", &valor);

for(i=0;i<10;i++){
if(valor == vetor){
pos = i;
printf("o valor %d esta guardando no vetor indeci V[%d]", valor , pos);
}else{
printf("Esse numero não existe dentro do vetor");
}
}



}
O resultado sair assim
Esse numero não existe dentro do vetor Esse numero não existe dentro do vetor O VALOR 3 ESTA GUARDANDO NO VETOR INDECI V[2]Esse numero não existe dentro do vetor Esse numero não existe dentro do vetor Esse numero não existe dentro do vetor Esse numero não existe dentro do vetor Esse numero não existe dentro do vetor Esse numero não existe dentro do vetor Esse numero não existe dentro do vetor

EU QUERIA APENAS QUE MOSTRASSE UMA DAS RESPOSTAS


  


2. MELHOR RESPOSTA

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 14/03/2013 - 14:47h

Voce pode definir "pos = -1", que eh uma posicao invalida do vetor.
Se, apos terminar de processar o laco, pos continuar com "-1", significa que o elemento nao foi encontrado.


#include<stdio.h>

main(){
int vetor[10];
int i, valor, pos;

for(i=0; i<10; i++){
printf("Digite uma numero");
scanf("%d", &vetor);
}

printf("Digite um numero para saber \n");
scanf("%d", &valor);

pos = -1;

for(i=0; i<10; i++){
if(valor == vetor){
pos = i;
printf("o valor %d esta guardando no vetor INDICE V[%d]", valor , pos);
}
}

if(pos == -1)
printf("Esse numero não existe dentro do vetor");

return 0;
}


Espero ter ajudado!

3. Re: quero apenas que mostre um único resultado [RESOLVIDO]

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 14/03/2013 - 15:08h


#include<stdio.h>

main()
{
int vetor[10];
int i,valor;
bool encontrou_numero = false;

for(i=0;i<10;i++){
printf("Digite uma numero");
scanf("%d", &vetor);
}
printf("Digite um numero para saber \n");
scanf("%d", &valor);

for(i=0;i<10;i++){
if(valor == vetor[i]){
printf("o valor %d esta guardando no vetor indeci V[%d]", valor , i);
encontrou_numero == true;
break; //Quando encontrar, para e imprime
}
}
//Se não encontrou
if ( !encontrou_numero )
printf("Esse numero não existe dentro do vetor");

}



4. Re: quero apenas que mostre um único resultado [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 14/03/2013 - 15:15h

Uilian, se não me engano o C padrão não suporta o tipo booleano (incluso a partir do C99, se não me engano).

A solução seria usar um int (char mesmo é o suficiente) ou incluir a <iostrem.h>, do C++ ;)


5. Re: quero apenas que mostre um único resultado [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 14/03/2013 - 16:15h

conserte essa parte para algo assim:



for(i=0;i<10;i++)
{
printf("Digite uma numero");
scanf("%d", &vetor[i]);
}









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts