Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dreand

Codigo retorna endereço memoria

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.