Parte de pesquisa esta travando
Bom dia pessoal, fiz este programa para um trabalho e o mesmo está funcionando " " algumas funções, mas quando seleciono a opção 2 ele trava...
Alguem poderia dar uma mãozinha...
E se alguem tiver um método mais eficaz por favor mencione...
Obs.: Lembrando que tenho q usar o método de SUB-ROTINAS.
Obrigado
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>struct CAD_AGENDA{ char nome[40]; char endereco[60]; int telefone; };struct CAD_AGENDA agenda[5];int CADASTRO(){ int i; for (i=0;i<5;i++){ printf("Entre com Nome %da pessoa:\n",i+1); gets(agenda[i].nome); printf("Entre o Endereço da %da pessoa :\n",i+1); gets(agenda[i].endereco); printf("Entre o Telefone da %da pessoa:\n",i+1); scanf("%d",&agenda[i].telefone); }; };int BUSCA(){ int i,acha; char nomepesq[40]; printf("Digite sua pesuisa (Nome)\n\n"); gets(nomepesq); i=0; acha=0; while((acha==0)&&(i<5)){ if (strcmp(agenda[i].nome,nomepesq)==0){ acha==1; }else{ i=i+1; }; }; if (acha==1){ printf("%s o registro desejado esta na %d posicao\n\n\n",nomepesq,i+1); }else{ printf("%s nao existe esse arquivo\n",nomepesq); }; };int ORDENAR(){ int i,j,aux; char nomeaux[40],endaux[60]; for (i=0;i<9;i++){ for(j=i+1;j<5;j++){ if(strcmp(agenda[i].nome,agenda[j].nome)>0){ strcpy(nomeaux,agenda[i].nome); strcpy(agenda[i].nome,agenda[j].nome); strcpy(agenda[j].nome,nomeaux); }; }; };};int MOSTRAR(){ int i; for(i=0;i<5;i++){ printf("%da pessoa\n"); printf("Nome: %s\n",agenda[i].nome); printf("Endereco: %s\n",agenda[i].endereco); printf("Telefone: %d\n\n",agenda[i].telefone); };}; int main(){ int i,opcao; do{ printf("--------------Menu Principal---------------------- \n"); printf("- Escolha uma opcao abaixo: - \n"); printf("- - \n"); printf("- 1 - Cadastrar contatos - \n"); printf("- 2 - Pesquisar contato - \n"); printf("- 3 - Ordenar contatos - \n"); printf("- 4 - Exibir contatos - \n"); printf("- 5 - Sair - \n"); printf("-------------------------------------------------- \n"); scanf("%d",&opcao); if (opcao != 5) { switch(opcao) { case 1: CADASTRO(); break; case 2: BUSCA(); break; case 3: ORDENAR(); break; case 4: MOSTRAR(); break; default: printf("\n *********************** "); printf("\n Digite novamente "); printf("\n ***********************\n\n\n\n "); getche(); } } }while (opcao!=5);}
Discussão (4)
Carregando comentários...