
Jefinho
Membros-
Total de itens
16 -
Registro em
-
Última visita
Sobre Jefinho

Perfil
-
Gender
Male
-
Location
salvador
Jefinho's Achievements
0
Reputação
-
tou com problema no meu codigo na função listarPorNivel ele deve listar os elementos no nivel determinado pelo usuario porem quando peço para listar no nivel 1 ele não lista nada no nivel 2 ele lista o elemento do nivel 1 no nivel 3 ele lista os elementos do nivel 2 e assim por diante já mudei de toda forma mas não consegui conserta isso ajuda ai pessoal #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h> typedef struct NO{ int n; char chave[20]; struct NO *esq,*dir; struct NO *proxcor; struct NO *proxcidade; struct NO *proxmodelo; struct NO *volta; }no; void inicializar(no **celula) { (*celula)->proxcor =NULL; (*celula)->proxcidade = NULL; (*celula)->proxmodelo=NULL; (*celula)->esq=NULL; (*celula)->dir=NULL; (*celula)->volta =NULL; } // PROCEDIMENTO PARA AUXILIAR O INSERIR void inserirno(char informacao[20],no **celula) { if (*celula ==NULL) { *celula =(no*)malloc(sizeof(no)); strcpy((*celula)->chave,informacao); (*celula)->esq =NULL; (*celula)->dir =NULL; return; } if(strcmp(informacao,(*celula)->chave)<0){ inserirno(informacao,&(*celula)->esq); return; } if(strcmp(informacao,(*celula)->chave)>0){ inserirno(informacao,&(*celula)->dir); } } //PROCEDIMENTO PARA INSERIR void inserir(no **celula) { int v, i; char informacao[20]; printf("quantos cadastro deseja fazer? "); scanf("%d",&v); for (i=0;i<v;i++) { printf("entrada: "); scanf("%s",&informacao[0]); inserirno(informacao,&(*celula)); } } // PROCEDIMENTO PARA LISTAR EM ORDEM void em_ordem ( no **mod) { if (*mod) { em_ordem (&(*mod)->esq); printf ("%s\n",(*mod)->chave); em_ordem (&(*mod)->dir); } } // PROCEDIMENTO PARA LISTAGEM POR NIVEL void listarpornivel(no **celula,int nivel) { printf("ok"); if ((nivel == 1) && (*celula !=NULL)) { printf("ok"); printf("%s\n",(*celula)->chave); } else { if ((*celula) ->esq != NULL) { listarpornivel(&(*celula)->esq ,nivel-1); } if ((*celula)->dir != NULL) { listarpornivel(&(*celula)->dir ,nivel - 1); } } } // FUNÇÃO PRINCIPAL int main() { char opcao ,informacao[20]; no *mod,*c,*cid; int nivel; //PARA INSERIR MODELO mod = (no*)malloc(sizeof(struct NO)); inicializar(&mod); inserir(&mod); //PARA INSERIR COR c = (no*)malloc(sizeof(struct NO)); inicializar(&c); inserir(&c); //PARA INSERIR CIDADE cid = (no*)malloc(sizeof(struct NO)); inicializar(&cid); inserir(&cid); printf("nivel"); scanf("%d",&nivel); listarpornivel(&mod,nivel); opcao ='o'; while (opcao != 'e') { scanf("%s%s",&opcao,&informacao[0]); if ((opcao == 'p') && (informacao[0] == 'm')) { em_ordem(&mod); } if ((opcao =='p') && (informacao[0] =='c' )) { em_ordem(&c); } if ((opcao == 'p') && (informacao[0] =='t')) { em_ordem(&cid); } } return 0; }
-
e ai galera me ajuda ai me dando uma sugestão legal estou aprendendo c e o professor pediu para gente fazer o trabalho final deve ser baseado no quem a gente aprendeu neste semetre estrutura matriz vetor lista arquivos .. etc ele deixou a gente escolher e pediu para gente usar o allegro me ajudem ai com uma sugestão um trabalho interessante + que não seja complicado para um iniciante
-
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; }
-
bom dia galera tou tendo um problema com o return da minha função se em vez de função faço um procedimento e coloco um printf para retorna o que desejo(soma) dá certo quando vou usar função e coloco a soma para ser retornada pelo return simplesmente não aparece nada int 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; } } return(soma); } /code] bt na hora de listar não consigo retorna nada com o return uso o printf e consigo retorna o que eu desejo [code]void listarmodelo(no **mod) { no *Tem; Tem = (no*)malloc(sizeof(no)); Tem = (*mod)->prox; while (Tem != NULL) { printf("%s\n",Tem->modelo); Tem = Tem->prox; } }
-
Não queria fazer isso mas 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); }
-
alguém poderia me dar um exemplo disso???? estou me enrolando na hora de apontar os ponteiros while (Tem !=NULL) { if (strcmp(Tem->modelo,informacao)==0) { Tem =(Tem)->proxmodelo; soma = soma + Tem->n; Tem->proxmodelo = Tem; printf("ok\n"); break; } else
-
a entrada do meu programa deve ser assim deve aparecer modelo,cor ,e cidade na mesma linha para o usuario reponder por exemplo Modelo:Astra Cor:azul Cidade:Salvador como faço isso não consigo colocar na mesma linha
-
gente como faço isso em c porem na coluna no lugar da numeração 1,2,3,4.... eu tenho cores(que é inserida inicialmente) e na linha em vez da numeração 1,2,3,4,....... eu tenho modelos de carros(que tb é inserido inicialmente )tanto cores como modelos o usuário do programa deve inserir a quantidade que quiser como declaro isso e faço uma função inserir ????????????????????????//
-
bom dia galera como faço para fazer uma matriz tridimensional implementada com ponteiros(em c) tipo um espaço vetorial R3 cujas as coordenadas são (x,y,z)
-
peço ajuda que domine listas ligadas preciso fazer esse trabalho que esta muito dificil alguém com uma certa experiencia em c poderia me indicar um caminho nesse trabalho? é assim: a entrada: primeiro você entra com um valor m e depois deve entrar com m modelos de carros diferentes isso se repete com cores e cidades onde o carro vai ser vendidio (fiz três listas dinamicas para esse primeiro procedimento) agora não consigo visualizar como vou fazer essa parte do trabalho depois devo entrar com um valor x e depois devo cadastra x vendas , por exemplo entro com x = 3 e depois entra com o numeros de carro vendidios de uma determina cor,modelo e cidade que foram inserido anteriormente(isso x vezes) vendidos =50 ----modelo = polo------cor = azul -----na cidade=Salvador vendidos =40 ----modelo = gol------cor = azul -----na cidade=Salvador vendidos =50 ----modelo = polo------cor = amarelo -----na cidade=ilheus depois de tudo isso foi fazer 11 consultas uma pede apenas o total de carros vendidios outro o total de carros vendidos de uma determinada cor ou de uma determinada cidade,etc..... o professor deu uma dica na sala , que deviamos usar matriz esparsa/listas ligadas mais sobre matriz esparsa so sei o conceito e pouca coisa na internet sobre isso como faço essa segunda parte do problema?? me ajudem aiii!!! tra compl aqui https://disciplinas.dcc.ufba.br/MATA...treLetivo20082
-
achei o erro estava no scanf("%s",&informação[20]) não pode tem que tirar o [20]
-
bom dia galera estou com probleminha com uma função aqui sera que tem alguém ai que pode me ajudar o que se passa!! o compilador pede a quantidade de modelos de carros(x) e depois a gente entra com os x modelos de carros mas se coloco por exemplo "Entre a quantidade de modelos de carros: " 3 "Entre com o modelo do carro:" Polo aqui ele sai da função o que não deveria acontecer, deveria "Entre com o modelo do carro" repetir 3 vezes mas se eu coloco "Entre a quantidade de modelos de carros: " 3 "Entre com o modelo do carro:" p "Entre com o modelo do carro:" p "Entre com o modelo do carro:" p se eu coloco apenas um caractere ele aceita na boa alguém tem uma ideia do que se passa? //tipo para modelos de carros// typedef struct celulamodelo{ int m; char chave[20]; struct celulamodelo *prox; }CelulaModelo; //FUNÇÃO PARA INSERIR MODELO// void inserirModelo(CelulaModelo **modelo) { int i; int y; char informacao[20]; CelulaModelo *Nova; printf("Entre a quantidade de modelos de carros: "); scanf("%d",&y); (*modelo)->m = y; for (i=0;i<(*modelo)->m;i++) { printf("Entre com o modelo do carro: "); scanf("%s",&informacao[20]); Nova = (CelulaModelo *)malloc(sizeof(CelulaModelo)); strcpy(Nova->chave,informacao); Nova->prox =(*modelo)->prox; (*modelo)->prox = Nova; } }
-
pow cara valeu!!!!! fiz como você dize e deu certo brigadão
-
bom dia galera não consigo ver o erro nesse meu codigo o compilador(gcc) indica na função inserirModelo na linha "Nova->chave = informacao;" e sempre aparece o aviso erro: tipos incompatíveis na atribuição #include <stdio.h> #include <stdlib.h> //tipo para modelos de carros// typedef struct celulamodelo{ int m; char chave[20]; struct celulamodelo *prox; }CelulaModelo; //tipo para Cor do carro// typedef struct celulaCor{ int c; char chaveCor[20]; struct celulaCor *prox1; }CelulaCor; //tipo para cidade onde o carro foi vendido// typedef struct celulaCidade{ int t; char chaveCidade[20]; struct celulaCidade *prox2; }CelulaCidade; /* Inicialização da Lista Encadeada */ void initLista(CelulaModelo **modelo) { (*modelo)->prox = NULL; } void inserirModelo(CelulaModelo **modelo) { int i; int y; char informacao[20]; CelulaModelo *Nova; printf("Entre a quantidade de modelos de carros"); scanf("%d",&y); (*modelo)->m = y; i = 0; while (i <= (*modelo)->m) { printf("Entre com o modelo do carro"); scanf("%s",&informacao); Nova = (CelulaModelo *)malloc(sizeof(CelulaModelo)); Nova->chave = informacao; Nova->prox =(*modelo)->prox; *modelo = Nova; i=i+1; } } //PROCEDIMENTO PARA O MENU INICIAL// void menuInicial() { 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"); } // Função principal// int main() { CelulaModelo *modelo; modelo = (CelulaModelo*)malloc(sizeof(struct celulamodelo)); initLista(&modelo); inserirModelo(&modelo); menuInicial(); return (0); }