Ir para conteúdo
Fórum Script Brasil

paulo_camilo

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre paulo_camilo

paulo_camilo's Achievements

0

Reputação

  1. Boas a todos, estou com problemas em fazer um trabalho em linguagem c que consiste na criação de um armazém usando listas duplamente ligadas. Para isso eu criei duas estruturas e ao criar a função para escrever a lista o programa vai a baixo, também estou com dois warnings no programa que não consigo tirar. desde já obrigado pela disponibilidade vou publicar aqui o código para ver se alguém me consegue ajudar! typedef struct no_produto { char nome[30],marca[30]; float preço; int dia,mes,ano,quantidade; }produto; typedef struct no_lista { produto *info; struct lista *seg; struct lista *ant; }lista; Funçoes lista *mem_lista() //alocar memoria para a lista { lista *mem; if((mem = (lista*)malloc(sizeof(lista))) == NULL) { printf("\nMemoria insuficiente"); } return mem; } produto *mem_produto() alocar memoria para a estrutura do produto { produto *mem; if((mem = (produto*)malloc(sizeof(produto))) == NULL) { printf("\nMemoria insuficiente"); } return mem; } lista *criarlista() //criar a lista { lista *l = mem_lista(); l->seg = NULL; l->ant = NULL; l->info = NULL; return l; } void insere_inicio_Lista (lista *l) // inserir um produto no inicio da lista { lista *aux_lista; produto *aux; int testeint; float teste; assert (l != NULL); aux_lista = mem_lista(); aux=mem_produto(); printf("\nQual o nome do produto :\n "); gets(aux->nome); while (strlen(aux->nome) == 0) { fflush(stdin); system("cls"); printf("\nIntroduziu um nome vazio!\n"); printf("\nDe o nome do ingrediente: \n"); gets(aux->nome); } strupr(aux->nome); //passar nome para maiusculas fflush(stdin); system("cls"); printf("\nQual a marca do produto :\n "); gets(aux->marca); while (strlen(aux->marca) == 0) { fflush(stdin); system("cls"); printf("\nIntroduziu uma marca invalida!\n"); printf("\nDe o nome da marca: \n"); gets(aux->marca); } strupr(aux->marca); //passar marca para maiusculas fflush(stdin); system("cls"); do { teste=0; printf("\nDe o preço do produto: \n"); teste=scanf("%f",&aux->preço); scanf("%*[^\n]"); scanf("%*c"); fflush(stdin); system("cls"); if(aux->preço<=0) printf("\nERRO! O preço deve ser positivo!\n"); }while((teste==0)||(aux->preço<=0)); do { teste=0; printf("\nDe a quantidade que pretende inserir: \n"); testeint=scanf("%d",&aux->quantidade); scanf("%*[^\n]"); scanf("%*c"); fflush(stdin); system("cls"); if(aux->quantidade<=0) printf("\nERRO! A quantidade deve ser positiva!\n"); }while((testeint==0)||(aux->quantidade<=0)); aux_lista->info = aux; aux_lista -> seg = l; aux_lista -> ant = NULL; l -> info ++; } void escreve_Lista(lista *l) //escrever lista { lista *aux=l->info; while (aux != NULL) { printf("\n"); printf("\nSeccao do produto %s", aux->info->nome); printf("\nMarca do produto %s", aux->info->marca); printf("\nPreco por unidade %0.2f ", aux->info->preço); printf("\nUnidades inseridas %d ", aux->info->quantidade); printf("\n"); aux=aux->seg; } }
×
×
  • Criar Novo...