Ir ao conteúdo

Posts recomendados

Postado

preciso fazer um programa que armazena 50 números e depois eu possa pesquisá-los e o programa deve dizer em que vetor o numero foi armazenado e quando digitar zero sair do programa, e na hora de pesquisar se o numero digitado não foi armazenado antes em um vetor deve aparecer uma mensagem de erro.

exemplo:

50<enter>

70<enter>

14<enter>

0<enter>

\\\\\\\\\\

14<enter>

posição no vetor: 2

60<enter>

ERRO: Número não encontrado

 

fiz somente a primeira parte mas não consigo e não entendo como fazer o resto.

 

#include <stdio.h>
#include <stdlib.h>
main()
{
    int numeros[50];
    int i;
    int x,y, par=0;
    
    for  (i=0;i<50;i++)
    {
        printf("digite um numero:\n");
        scanf("%d",&numeros);
    }
}

 

Postado

@Ceifador1998 Então, observe a lógica, você primeiro deve preencher os números no vetor, isso você ja fez no primeiro for:


    for  (i=0;i<50;i++)
    {
        printf("digite um numero:\n");
        scanf("%d",&numeros[i]);
    }

Agora perceba que você pede os números e eles são armazenados direto no vetor, não há um auxiliar, e o for é usado apenas para selecionar o índice do vetor.

 

 

Para a função de busca, é necessário usar um loop, seja while, do...while, for. 

Dentro desse loop será feito a ENTRADA do numero a ser encontrado.

Depois que é feito a parte de entrada do numero, use um for, igual esse ai em cima, e um if para verificar se o número da ENTRADA  está no vetor com o indice i, ai apenas imprima a mensagem: printf("posicao no vetor: %d", i);  

 

  • Curtir 1
Postado

eu não entendo muito de programação. mas estou tentando. procurei programas parecidos na internet e montei esse mas não sei como fazer corretamente.

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x,y, par=0;
    int i;
    char numeros;

  for (i=0;i<=4;i++)
  {
       printf("Digite um numero: ");
      scanf("%d",&numeros);
  }
   printf("Digite o valor que deseja procurar no vetor: ");
   scanf("%d",&x);
   
    for (i=0; i<5; i++)
    {
      printf("Valor do elemento %d da string = %c\n",i, numeros);
    }
   return (0);
 }

  • Curtir 1
Postado
agora, Ceifador1998 disse:

eu não entendo muito de programação. mas estou tentando. procurei programas parecidos na internet e montei esse mas não sei como fazer corretamente.

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x,y, par=0;
    int i;
    char numeros;

  for (i=0;i<=4;i++)
  {
       printf("Digite um numero: ");
      scanf("%d",&numeros);
  }
   printf("Digite o valor que deseja procurar no vetor: ");
   scanf("%d",&x);
   
    for (i=0; i<5; i++)
    {
      printf("Valor do elemento %d da string = %c\n",i, numeros);
    }
   return (0);
 }

No seu código tem um problema, cada número está sendo salvo na variável numeros, porém, ela não é um vetor e por causa disso a cada leitura do número, o valor antigo é perdido. Você poderia fazer também utilizando char, mas nesse caso é desnecessário porque está trabalhando com números inteiros.

 

Crie um vetor inteiro para receber os números e faça a seguinte alteração no primeiro loop:

int numeros[5];
    for (i=0;i<=4;i++)
    {
        printf("Digite um numero: ");
        scanf("%d",&numeros[i]);
    }

Para buscar a posição do vetor que tem o mesmo valor que o inserido para busca, você terá que criar novamente um loop mas com um if dentro para verificar se o valor do vetor é igual ao valor inserido, se sim, ele deverá ser mostrado na tela.

  • Curtir 1
Postado

ok agora eu consigo desenvolver o programa mas a unica parte que não faço ideia é de como buscar o numero e em que vetor ele foi armazenado, se alguém poder me mandar só essa parte eu termino meu programa, obrigado pela ajuda!

  • Membro VIP
Postado

Olá @Ceifador1998.

 

25 minutos atrás, Ceifador1998 disse:

a unica parte que não faço ideia é de como buscar o numero e em que vetor ele foi armazenado

Poste seu código atual sem a busca para revisarmos... deixe o código funcionando certinho... após passamos para esse requisito de "buscar".

 

 

26 minutos atrás, Ceifador1998 disse:

se alguém poder me mandar só essa parte eu termino meu programa, obrigado pela ajuda!

Esse não é o propósito do fórum... você mesmo é/será capaz de desenvolver.

 

 

No aguardo.

 

 

Postado

ta ai!, acho que o proximo desafio vai ser a parte de digitar o numero 0 para sair do programa mas na hora de digitar os 50 números o 0 pode ser aceito! talvez tenha que colocar essa parte dos 50 números isolado do resto e no final usar o while.

#include <stdio.h>
#include <stdlib.h>
main() {
    int numeros[5], i, buscar, erro=0;
    
    for (i=0;i<=4;i++)
    {
        printf("Digite um numero %i: \n",i);
        scanf("%i",&numeros[i]);
    }
    
    printf("Digite o valor a ser procurado:\n");
    scanf("%i",&buscar);
    for(i=0;i<4;i++)
    {
        if(buscar==numeros[5])
        {
            printf("o valor %i se encontra na posicao %i",buscar,i);
        }
        else (erro=erro+1);
    }	
    if(erro==5)
    {
        printf("o numero solicitado nao existe!\n");
    }
} 

 

  • Membro VIP
Postado

Olá @Ceifador1998.

 

1) USADO DA TAG CODE

Importante, favor ler tópico abaixo:

 

 

 

2) CADASTRO E BUSCA DE NÚMEROS

4 horas atrás, Ceifador1998 disse:

ta ai

Seu código não está funcionando.

 

Exemplo:

teste_codigo.jpg

 

Não me foi informado em que posição está. Parece-me que a parte do cadastro está funcionando certo, ou seja, o que não está funcionando é a parte da busca. É necessário corrigir... faça alguns testes até ficar pronto. Se tiver dúvidas, tenta se virar... se não conseguir, posta onde precisa de ajuda.

 

 

 

 

 

 

5) IMPLEMENTAÇÃO DO WHILE

Pelo visto o for está funcionado. Logo, é necessário antes corrigir a busca. Após, tente implementar o while.

 

4 horas atrás, Ceifador1998 disse:

acho que o proximo desafio vai ser a parte de digitar o numero 0 para sair do programa mas na hora de digitar os 50 números o 0 pode ser aceito!

Então, qual as condições para o while continuar repetindo?  basicamente são duas: "o número digitado não ser 0" E "a quantidade de números já digitados ser menor que 50". (se o número foi 0, então o usuário não quer cadastrar mais. Se tem já tem 50 números, então o vetor estará cheio e não pode cadastrar mais).

 

Lembrando: primeiro corrige a busca. Não tente fazer as duas coisas ao mesmo tempo.

 

 

 

***

 

No aguardo.

Postado

aparentemente com as correções solicitadas agora a parte de buscar esta funcionando perfeitamente!:tw_glasses:

enquanto a parte do while eu coloquei dentro do segundo comando de repetição pois como dito antes quando pedir os vetores pode-se digitar o zero mas depois se digitar ele tem que sair do programa, tentei de varias formas e sempre davam erros então usei o comando goto para sair da repetição e dar um system("pause"); talvez tenha formas mais praticas mas como funcionou está tudo certo afinal o principal é o programa funcionar e eu entender seu funcionamento!

obrigado pela ajuda!:thumbsup:

 

 

 

#include <stdio.h>
#include <stdlib.h>
main()
{
    int numeros[5],i,buscar,erro=0;
    
    for (i=0;i<5;i++)
    {
        printf("Digite um numero %i: \n",i);
        scanf("%i",&numeros);
    }
    printf("digite o valor a ser procurado:\n");
    scanf("%i",&buscar);
    for(i=0;i<5;i++)
    {
        if(buscar==numeros)
        {
            printf("o valor %i se encontra na posicao %i",buscar,i);
        }
        else
        {
            erro=erro+1;
        }
        while(buscar==0)
        {
        goto fim;
        }
     }
    if(erro==5)
    {
         printf("\n o numero solicitado nao existe\n");
    }
    else{}
    fim:
    system("pause");
    getchar();
}

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!