Ir para conteúdo
Fórum Script Brasil
  • 0

agenda telefonica em c


Jefinho

Pergunta

e ai gente me ajuda ai

fiz a agenda

com 4 funções :blink:

inserir(oK)

listar(oK)

ordenar por nome(NÃO ESTA DANDO CERTO)

pesquisar (oK)

me ajuda ai ver o erro em ordenar aii

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


typedef struct Agenda{
    char nome[50];
    char fone[17];
  }T_agenda;


T_agenda Tab[50];

int total = 0;

void inclusao(void)
{
char op;
op = 's';
while ((total < 50) && (op == 's'))  
 {
    printf("Nome: ");
    scanf("%s",&Tab[total].nome[0]);
    printf("telefone: ");
     scanf("%s",&Tab[total].fone[0]);
     printf("deseja inserir mais dados?(s)ou(n)");
     scanf("%s",&op);
     total++;
}
}

void ordenar(void)
{
    int i,j,p;
    char temp[50];
    for (i=0;i<total;i++)
    {
        printf("ok");
       for (j=0;j<50;j++)
       {
         for (p=0;p<49;p++)
            {
                printf("ok");
             if (strcmp(Tab[i].nome[p],Tab[i].nome[p+1])==0)
                  {
                 strcpy(temp,Tab[i].nome[p+1]); 
               strcpy (Tab[i].nome[p+1],Tab[i].nome[p]);
               strcpy(Tab[i].nome[p],temp);
               
                }
             }
      }
   }
}                          

void pesquisar(void)
{
    char pesq[20];
    int i;
    printf("entre com o nome que deseja pesquisar");
    scanf("%s",&pesq[0]);
    for (i= 0;i<total;i++)
       {
           
             if (strcmp(Tab[i].nome,pesq)== 0)
                {
                    
                    printf("Fone:%s",Tab[i].fone);
               }     
           }
      }
void Listar(void)
{
    int i;
    i=0;
    while (i < total)
    {
        printf("%d)Nome:%s Fone:%s\n",i+1,Tab[i].nome,Tab[i].fone);
     i++;
     }
 }         

void menu(void)
{
    char op;
    do
    { printf("\n(1)Incluir\n(2)Listar\n(3)Ordenar por nome\n(4)Pesquisar por nome");
    
    scanf("%s",&op);
    switch(op)
    {
        case '1':inclusao();
                  break;
        case '2':Listar();
                  break;
        case '3':ordenar();
                  break;
        case '4':pesquisar();
                  break;                
        
    }    
   } 
    while (op != '5');
}    

int main ()
{
    menu();
    return 0;
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olha cara teu programa não tem apenas um erro tem varios mis vamos começar por cada função

Inclusão

você esta armazenando somente a primeira letra e numero de cada nome e telefone

quando você cria

typedef struct Agenda{
    char nome[50];
    char fone[17];
  }T_agenda;
e depois na hora de armazenar você armazena
printf("Nome: ");
    scanf("%s",&Tab[total].nome[0]);
ai você estara armazenando so a primeira letra de cada nome. caso você quera armazenar o nome todo você tem que mandar apenas o ponteiro da matriz de char, int e assim sucessivamente o certo seria
printf("Nome: ");
    scanf("%s",&Tab[total].nome);

Ordenar

aqui o erro é similar pois você ta enviando para as funções strcmp, strcpy apenas char e elas recebem apenas cons char* ou seja ponteiros de string para corrigir basta fazer o mesmo do inclusão

o resto eu não testei mas boa sorte qualquer coisa post ai

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante
Olha cara teu programa não tem apenas um erro tem varios mis vamos começar por cada função

Inclusão

você esta armazenando somente a primeira letra e numero de cada nome e telefone

quando você cria

typedef struct Agenda{
    char nome[50];
    char fone[17];
  }T_agenda;
e depois na hora de armazenar você armazena
printf("Nome: ");
    scanf("%s",&Tab[total].nome[0]);
ai você estara armazenando so a primeira letra de cada nome. caso você quera armazenar o nome todo você tem que mandar apenas o ponteiro da matriz de char, int e assim sucessivamente o certo seria
printf("Nome: ");
    scanf("%s",&Tab[total].nome);

Ordenar

aqui o erro é similar pois você ta enviando para as funções strcmp, strcpy apenas char e elas recebem apenas cons char* ou seja ponteiros de string para corrigir basta fazer o mesmo do inclusão

o resto eu não testei mas boa sorte qualquer coisa post ai

não resolveu não

ao contrario

agora a função inserir que antes não tinha nenhum problema vem com o aviso

lab.c:23: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[50]’

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...