dreand 0 Denunciar post Postado Março 3, 2009 estou com o codigo abaixo funcionando, porem ele nao retorna o resultado e sim o endereço de memoria oque ta faltando, se alguem puder me ajudar. #include <iostream> using namespace std; struct elemento{ char nome[50]; int fone; elemento *proximo; }; //buscando o nome int busca_elemento(elemento *no, char num[50]) { int retorno = 0, compara; while (no != NULL) { compara = strcmp(no->nome, num); if (compara == 0) { retorno = 1; } no = no->proximo; } return retorno; } int main() { elemento *no_atual, *no_anterior = NULL, *primeiro_no = NULL; char nom[50]; int nome; char continua= 's'; do { no_atual = new elemento; cout<<"\nInforme o nome do assinante: "; cin>>nom; cout<<"\nInforme o telefone do assinante referente ao nome informado: "; cin>>no_atual->fone; strcpy (no_atual->nome, nom); no_atual->proximo = NULL; if (no_anterior != NULL) { no_anterior->proximo = no_atual; } no_anterior = no_atual; if (primeiro_no == NULL) { primeiro_no = no_atual; } cout<<"\nDeseja inserir mais algum assinante a lista ? (s)Sim ou (n)Nao. : "; cin>>continua; }while (continua == 's'); //começando a pesquisa char nome_a[50]; int fone; char continua_a = 's'; do{ cout<<"\nDeseja Pesquisar algum assinante pelo nome? (s)Sim ou (n)Nao. : "; cin>>continua_a; if (continua_a == 's'){ cout<<"\nInforme o nome de assinante a ser pesquisado: "; cin>>nome_a; cout<<endl; if (busca_elemento(primeiro_no, nome_a) == 0) { cout<<"\nO assinante solicitado nao consta nesta lista!"<<endl<<endl; }else{ cout<<"O assinante pesquisado foi: "<<nome_a<<"\no fone deste assinate eh: "<<fone; cout<<endl; } }else{} }while (continua_a == 's'); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Março 3, 2009 bom, se ele retorna o endereço de memória, é simples, acessa o valor desse endereço! veja o tópico "Dificuldade File Circular". Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 4, 2009 uma coisa q naum entendi é q beleza c existir o cara, ele retornará 1, e ... ?????? você inicializa a variavel fone + naum joga nd nela, tente jogar um valor 22 por exemplo, ele irá exibir o valor 22 e naum o endereço de memoria.. []s -- Edit Fiz umas alteraçõesZINHAS... veja como fico: #include <iostream> using namespace std; struct elemento{ char nome[50]; int fone; elemento *proximo; }; elemento *atual; //buscando o nome int busca_elemento(elemento *no, char num[50]) { int retorno = 0, compara; while (no != NULL){ compara = strcmp(no->nome, num); if (compara == 0) {retorno = 1; atual = no; break;} no = no->proximo; } return retorno; } int main() { elemento *no_atual, *no_anterior = NULL, *primeiro_no = NULL; char nom[50]; int nome; char continua= 's'; do { no_atual = new elemento; cout<<"\nInforme o nome do assinante: "; cin>>nom; cout<<"\nInforme o telefone do assinante referente ao nome informado: "; cin>>no_atual->fone; strcpy (no_atual->nome, nom); no_atual->proximo = NULL; if (no_anterior != NULL) { no_anterior->proximo = no_atual; } no_anterior = no_atual; if (primeiro_no == NULL) { primeiro_no = no_atual; } cout<<"\nDeseja inserir mais algum assinante a lista ? (s)Sim ou (n)Nao. : "; cin>>continua; }while (continua == 's'); //começando a pesquisa char nome_a[50]; int fone=0; char continua_a = 's'; do{ cout<<"\nDeseja Pesquisar algum assinante pelo nome? (s)Sim ou (n)Nao. : "; cin>>continua_a; if (continua_a == 's'){ cout<<"\nInforme o nome de assinante a ser pesquisado: "; cin>>nome_a; cout<<endl; if (busca_elemento(primeiro_no, nome_a) == 0) { cout<<"\nO assinante solicitado nao consta nesta lista!"<<endl<<endl; }else{ cout<<"O assinante pesquisado foi: "<<nome_a<<"\no fone deste assinate eh: "<<atual->fone; cout<<endl; } }else{} }while (continua_a == 's'); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites