Jefinho Postado Novembro 6, 2008 Denunciar Share Postado Novembro 6, 2008 e ai gente me ajuda aifiz a agendacom 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; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Josefran Postado Novembro 6, 2008 Denunciar Share Postado Novembro 6, 2008 Olha cara teu programa não tem apenas um erro tem varios mis vamos começar por cada funçãoInclusãovocê esta armazenando somente a primeira letra e numero de cada nome e telefonequando você criatypedef 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);Ordenaraqui 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Novembro 7, 2008 Denunciar Share Postado Novembro 7, 2008 Olha cara teu programa não tem apenas um erro tem varios mis vamos começar por cada funçãoInclusãovocê esta armazenando somente a primeira letra e numero de cada nome e telefonequando você criatypedef 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);Ordenaraqui 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 ainão resolveu nãoao contrarioagora a função inserir que antes não tinha nenhum problema vem com o avisolab.c:23: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[50]’ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jefinho
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
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.