Ir para conteúdo
Fórum Script Brasil

Jefinho

Membros
  • Total de itens

    16
  • Registro em

  • Última visita

Sobre Jefinho

Perfil

  • Gender
    Male
  • Location
    salvador

Jefinho's Achievements

0

Reputação

  1. 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; }
  2. 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
  3. 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; }
  4. 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; } }
  5. 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); }
  6. 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
  7. Jefinho

    entrada em c

    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
  8. 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 ????????????????????????//
  9. 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)
  10. Jefinho

    Listas ligadas

    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
  11. achei o erro estava no scanf("%s",&informação[20]) não pode tem que tirar o [20]
  12. 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; } }
  13. pow cara valeu!!!!! fiz como você dize e deu certo brigadão
  14. 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); }
×
×
  • Criar Novo...