Jefinho Postado Novembro 4, 2008 Denunciar Share Postado Novembro 4, 2008 alguém poderia me dar um exemplo disso????estou me enrolando na hora de apontar os ponteiroswhile (Tem !=NULL) { if (strcmp(Tem->modelo,informacao)==0) { Tem =(Tem)->proxmodelo; soma = soma + Tem->n; Tem->proxmodelo = Tem; printf("ok\n"); break; } else Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MuRiLo H4Ck3R Postado Novembro 4, 2008 Denunciar Share Postado Novembro 4, 2008 posta o código todo! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jefinho Postado Novembro 4, 2008 Autor Denunciar Share Postado Novembro 4, 2008 Não queria fazer issomas logo que você pediu#include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h> typedef struct NO{ int n; char cidade[20]; char modelo[20]; char cor[20]; struct NO *prox; struct NO *proxcor; struct NO *proxcidade; struct NO *proxmodelo; }no; void inicializar(no **celula) { (*celula)->proxcor =NULL; (*celula)->proxcidade = NULL; (*celula)->proxmodelo=NULL; (*celula)->prox=NULL; } void inserirModelo(no **mod) { int i; int y; char informacao[20]; no *Nova; printf("Entre a quantidade de modelos de carros: "); scanf("%d",&y); for (i=0;i<y;i++) { printf("Entre com o modelo do carro: "); scanf("%s",&informacao[0]); Nova = (no *)malloc(sizeof(no)); strcpy(Nova->modelo,informacao); Nova->prox =(*mod)->prox; (*mod)->prox = Nova; } } //FUNÇÃO PARA INSERIR COR // void inserirCor(no **c) { int i; int y; char informacao[20]; no *Nova; printf("Entre a quantidade de cores dos carros: "); scanf("%d",&y); for(i=0;i < y;i++) { printf("Entre com as cores do carro: "); scanf("%s",&informacao[0]); Nova = (no *)malloc(sizeof(no)); strcpy(Nova->cor,informacao); Nova->prox =(*c)->prox; (*c)->prox = Nova; } } void inserirCidade(no **cid) { int i; int y; char informacao[20]; no *Nova; printf("Entre a quantidade de cidades onde há venda de carro: "); scanf("%d",&y); for (i=0;i< y;i++ ) { printf("Entre com as cidade onde são vendidos os carro: "); scanf("%s",&informacao[0]); Nova = (no*)malloc(sizeof(no)); strcpy(Nova->cidade,informacao); Nova->prox =(*cid)->prox; (*cid)->prox = Nova; } } void inserirPrincipal(no **cid ,no **mod, no **c) { int i, v,y; char informacao[20]; no *Nova,*Tem,*Tem1,*Tem2; printf("quantos cadastro deseja fazer"); scanf("%d",&v); for (i= 0;i< v;i++) { printf("modelo: "); scanf("%s",&informacao[0]); Nova =(no*)malloc(sizeof(no)); Tem =(*mod)->prox; while (Tem!= NULL) { if (strcmp(Tem->modelo,informacao)==0) { if (Tem->proxmodelo == NULL) { Tem->proxmodelo = Nova; strcpy(Nova->modelo,informacao); Nova->proxmodelo=(Tem)->proxmodelo; (Nova)->proxmodelo = NULL; break; } else { while (Tem->proxmodelo != NULL) { Tem=Tem->proxmodelo; } Tem->proxmodelo = Nova; strcpy(Nova->modelo,informacao); (Nova)->proxmodelo = NULL; } } else { Tem = Tem->prox; } } printf("cor: "); scanf("%s",&informacao[0]); Tem1=(*c)->prox; while (Tem1 !=NULL) { if (strcmp(Tem1->cor,informacao)==0) { if(Tem1->proxcor == NULL) { Tem1->proxcor= Nova; strcpy(Nova->cor,informacao); Nova->proxcor=(Tem1)->proxcor; (Tem1)->proxcor = NULL; } else { while (Tem1->proxcor != NULL) { Tem1=Tem1->proxcor; } Tem1->proxcor =Nova; strcpy(Nova->cor,informacao); (Nova)->proxcor = NULL; } break; } else { Tem1 = Tem1->prox; } } printf("cidade: "); scanf("%s",&informacao[0]); Tem2 =(*cid)->prox; while (Tem2 !=NULL) { if (strcmp(Tem2->cidade,informacao)==0) { if (Tem2->proxcidade ==NULL) { Tem2->proxcidade = Nova; strcpy(Nova->cidade,informacao); Nova->proxcidade=(Tem2)->proxcidade; (Nova)->proxcidade = NULL; } else { while (Tem2->proxcidade !=NULL) { Tem2=Tem2->proxcidade; } Tem2->proxcidade =Nova; strcpy(Nova->cidade,informacao); (Nova)->proxcidade = NULL; } break; } else { Tem2 = Tem2->prox; } } printf("n° de carros "); scanf("%d",&y); (Nova)->n = y; } } void consultapormodelo(no **cid ,no **mod, no **c) { char informacao[20]; no *Tem; int soma; printf("m "); scanf("%s",&informacao[0]); Tem=(no*)malloc(sizeof(no)); Tem =(*mod)->prox; soma = 0; while (Tem !=NULL) { if (strcmp(Tem->modelo,informacao)==0) { Tem=Tem->proxmodelo ; while (Tem != NULL) { soma = soma + Tem->n; Tem=Tem->proxmodelo; } break; } else { Tem = Tem->prox; } } printf("a soma é %d",soma); } /*void consultaModelo(no **mod) { char informacao[20]; scanf("%s",&informacao[0]); no *Tem; Tem = (*mod)->prox; while (Tem->prox != NULL) { if (strcmp(Tem->modelo,informacao)==0) { Tem =(Tem)->proxmodelo; printf("%s",Tem->modelo); (Tem)->proxmodelo = Tem; } else { Tem= Tem->prox; } } } */ //PROCEDIMENTO PARA O MENU INICIAL// void menuInicial() { printf("-------MENU PRINCIPAL-------"); printf("\n\n ------------------------------ \n\n"); printf("1. consulta quantidade de carros vendidos\n"); printf("2. consulta quantidade de carros de uma determinada cor vendidos\n"); printf("3. consulta quantidade de carros vendidos em uma determinada cidade\n"); printf("4. consulta quantidade de carro por modelo e cidade\n"); printf("5. consulta quantidade de carro por modelo e cor\n"); printf("6. consulta quantidade de carro por modelo, cor e cidade\n"); printf("7. remove informação sobre venda\n"); printf("8. lista nomes de modelos de carros\n"); printf("9. lista nomes de cores\n"); printf("10.lista nomes de cidades\n"); printf("11. término de sequência de operações\n"); } int main() { //declaraçãoes// char opcao; no *c; no *cid; no *mod; // no *princ; printf("\n------------Casdastra Vendas-----------\n"); //Para inserir os modelos// mod = (no*)malloc(sizeof(struct NO)); inicializar(&mod); inserirModelo(&mod); //Para inserir as cores// c = (no*)malloc(sizeof(struct NO)); inicializar(&c); inserirCor(&c); //Para inserir as cidade// cid = (no*)malloc(sizeof(struct NO)); inicializar(&cid); inserirCidade(&cid); // princ=(no*)malloc(sizeof(struct NO)); // inicializar(&princ); inserirPrincipal(&cid,&mod,&c); opcao = '0'; while (opcao != 'e') { menuInicial(); printf("escolha uma opção"); scanf("%s",&opcao); if (opcao == '1') // consultaModelo(&mod); consultapormodelo(&cid ,&mod,&c); } system("PAUSE"); return (0); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Novembro 5, 2008 Denunciar Share Postado Novembro 5, 2008 nossa mas olha essa parte do codigo:Tem =(Tem)->proxmodelo; soma = soma + Tem->n; Tem->proxmodelo = Tem;[/code] olha na ultima linha, você ta alterando a lista. e ainda por cima ta fazendo o item aponta pra ele mesmo. porque você pos isso ai?? arranca essa linha agora otra coisa. não sei pra q você poe esse strcmp, mas ignorando isso, de uma olhada: [code]while (Tem !=NULL) { Tem =(Tem)->proxmodelo; soma = soma + Tem->n; Tem->proxmodelo = Tem; printf("ok\n"); break; }alem daquela linha estranha q comentei acima, porque você da o print e o break?? não é pra somar a lista toda??se você não pretende somar a lista toda, então explica pra gente exatamnete o q você quer fazer, q a gente não pode adivinhar.hehe e tb não precisava postar o codigo todo o seu programa, era só por o codigo todo da sub, se você poe um pedaco só, fica dificil pra gente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jefinho Postado Novembro 6, 2008 Autor Denunciar Share Postado Novembro 6, 2008 nossa mas olha essa parte do codigo:Tem =(Tem)->proxmodelo; soma = soma + Tem->n; Tem->proxmodelo = Tem; olha na ultima linha, você ta alterando a lista. e ainda por cima ta fazendo o item aponta pra ele mesmo. porque você pos isso ai?? arranca essa linha agora otra coisa. não sei pra q você poe esse strcmp, mas ignorando isso, de uma olhada: while (Tem !=NULL) { Tem =(Tem)->proxmodelo; soma = soma + Tem->n; Tem->proxmodelo = Tem; printf("ok\n"); break; }alem daquela linha estranha q comentei acima, porque você da o print e o break?? não é pra somar a lista toda??se você não pretende somar a lista toda, então explica pra gente exatamnete o q você quer fazer, q a gente não pode adivinhar.hehe e tb não precisava postar o codigo todo o seu programa, era só por o codigo todo da sub, se você poe um pedaco só, fica dificil pra gente.valeu deu certo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jefinho
alguém poderia me dar um exemplo disso????
estou me enrolando na hora de apontar os ponteiros
Link para o comentário
Compartilhar em outros sites
4 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.