Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

Duvida Algoritmo em C

Ir em baixo  Mensagem [Página 1 de 1]

1 Duvida Algoritmo em C em Seg Ago 05, 2013 3:04 pm

Olá Galera, tudo certo ? Sou novo no site, o qual o mesmo achei muito interessante e me ajudou bastante:D 

Estava tentando fazer 2 exercicios aqui, e me surgiu algumas duvidas, a primeira é neste algoritmo:

Construa um algoritmo que armazene código, nome, quantidade, valor de compra e valor de venda de 100 produtos e
gere uma listagem de todos os produtos ou somente de um, quando se digitar o código.(coloquei no meu codigo somente com 2 valores ),

main(){
int busca[2];
int i, codigo[2], quantidade[2];
float compra[2], venda[2];
char nome[2][30];
for(i=0; i<2; i++){
printf("1- Digite o Codigo: ");
scanf("%d", &codigo[i]);
printf("2- Digite o Nome: ");
scanf("%s", nome[i]);
printf("3- Digite a Quantidade: ");
scanf("%d", &quantidade[i]);
printf("4- Digite o Valor de Compra: ");
scanf("%f", &compra[i]);
printf("5- Digite o Valor de Venda: ");
scanf("%f", &venda[i]);
printf("\n");
}

for (i=0; i<2; i++){
printf("Codigo: %d\nNome: %s\nQuantidade: %d\nValor de Compra: %0.2f\nValor de Venda: %0.2f", codigo[i],nome[i],quantidade[i],compra[i],venda[i]);
printf("\n\n");
}

printf("---PESQUISA POR CODIGO--- \n\n\n");
for(i=0; i<2; i++){
printf("Digite o codigo: ");
scanf("%d", &busca[i]);
printf("\n");

if (codigo[i]== busca[i]){
printf("Codigo: %d\nNome: %s\nQuantidade: %d\nValor de Compra: %0.2f\nValor de Venda: %0.2f", codigo[i],nome[i],quantidade[i],compra[i],venda[i]);
printf("\n\n");

}
}


system("pause");

}

Minha duvida eh na busca, pois ele so encontra se eu fizer a busca na ordem que inclui o codigo, no caso se inclui codigo 1, depois o 2.... ele so vai achar se eu pesquisar primeiro o 1 e depois o 2, se eu procurar primeiro o 1 ele nao acha, alguem poderia me ajudar ??

Abraços a todos

Ver perfil do usuário

2 Re: Duvida Algoritmo em C em Qui Ago 08, 2013 5:15 pm

Admin


Admin
Olá Danilo, seja bem vindo.

O seguinte trecho eu não entendi bem o que quis fazer:
Código:
for(i=0; i<2; i++){
printf("Digite o codigo: ");
scanf("%d", &busca[i]);
Assim você fazer a busca de 3 códigos, pois teu scanf está dentro do laço.

Eu faria algo assim: definiria um inteiro 'buscar', pro usuário procurar o código.
Em seguida sairia comparando esse número com todos os números do vetor de códigos, e caso encontrasse, imprimiria tudo desde produto.

Ficaria + - assim minha ideia:
Código:

int continuar=1,
    buscar;

printf("---PESQUISA POR CODIGO--- \n\n\n");
while(continuar)
{
   printf("Digite o codigo: ");
   scanf("%d", &buscar);
   printf("\n");

   //Aqui vamos procurar o código digitado no vetor, e imprime todos os dados caso encontre
   for(i=0 ; i<2 ; i++)
      if(buscar == codigo[i])
         printf("Codigo: %d\nNome: %s\nQuantidade: %d\nValor de Compra: %0.2f\nValor de Venda: %0.2f", codigo[i],nome[i],quantidade[i],compra[i],venda[i]);
printf("\n\n");


   printf("Digite 0 para sair ou outro número para uma nova pesquisa: ");
   scanf("%d", &continuar);
   printf("\n");
}
Se não entender ou quiser investir na sua ideia, só perguntar.

Ver perfil do usuário http://progressiva.forumeiros.com

3 Re: Duvida Algoritmo em C em Seg Set 29, 2014 2:35 am

Tentei fazer algo parecido!
Código:
int
                   buscar  = 0,
                   Achei = 0,
                   codigo[10]={1234,35,29,45,98,74,78,89,96,69};

                   printf("::: : PESQUISA POR CODIGO : :::\n\n");
                   printf("Entre Codigo ou [ S ] para Sair: ?");
                   while( scanf("%d", &buscar) )
                   {
                       for(Achei = 0; (Achei < 10) && (codigo[Achei] !=  buscar); Achei++);

                   if( Achei < 10 )
                   {
                   printf("\nCodigo: %d\nNome: %s\nQuantidade: %d\nValor de Compra: %0.2f\nValor de Venda: %0.2f\n\n",
                          codigo[Achei]/*,nome[busca],quantidade[busca],compra[busca],venda[busca]*/);
                   printf("Pronto.\nNova busca: ");
                   } else
                   printf("\nRegistro %d n~ existe!\nNova busca: ", buscar);


                   while( getchar() != '\n' )
                       continue;
                   putchar('?');
                   }

Ver perfil do usuário

Conteúdo patrocinado


Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum