Ir ao conteúdo
  • Cadastre-se
jefferson2008.1

ponteiros e estrutura em c [ajuda]

Recommended Posts

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);
}

Compartilhar este post


Link para o post
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]);
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×