Ir ao conteúdo
  • Cadastre-se

ponteiros e estrutura em c [ajuda]


jefferson2008.1

Posts recomendados

no meu código

na função inserirModelo eu faço


printf("Entre a quantidade de modelos de carros: ");
scanf("%d",&y);
(*modelo)->m = y;
i = 0;
while (i < (*modelo)->m )
{....................

mas o valor de y parece que não é atribuído a (*modelo)->m

pois o while so repete um vez indetendente do valor do y

alguem pode me dar uma ajuda ,dica...?


#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

//tipo para modelos de carros//
typedef struct celulamodelo{
int m;
char chave[20]; //modifique "50" pelo tamanho de string desejado
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[20]);
Nova = (CelulaModelo *)malloc(sizeof(CelulaModelo));
sprintf(Nova->chave,"%s", 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);
}

Link para o comentário
Compartilhar em outros sites

É realmente intrigante porque não encontro erro lógico nenhum!!! mais.

eu encontrei um erro pode ser ele eu ainda não testei, já que estou sem compilador aqui.


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[20]);//Aqui
Nova = (CelulaModelo *)malloc(sizeof(CelulaModelo));
sprintf(Nova->chave,"%s", informacao);
Nova->prox =(*modelo)->prox;
*modelo = Nova;
i=i+1;
}
}

corrige essa parte e vê se da certo (se for esse o caso)


while (i < (*modelo)->m )
{
printf("Entre com o modelo do carro: ");
scanf("%c",&informacao[20]);
...

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!