Jump to content
Fórum Script Brasil

felixaugusto123

Membros
  • Posts

    1
  • Joined

  • Last visited

Everything posted by felixaugusto123

  1. Olá pessoal, como faço para colocar o nome de um produto nesse código? Estava tentando um string mas não consigo achar como ler e imprimir os dados. #include <stdio.h> #include <stdlib.h> #include <string.h> /* Estrutura que será usada para criar os nós da lista */ typedef struct tipo_produto { int codigo; /* Codigo do produto */ double preço; /* preço do produto */ /* Proximo elemento da lista encadeada de Produtos */ struct tipo_produto *proximo; } TProduto; /* Prototipos das funcoes para inserir e listar produtos */ void inserir(TProduto **cabeca); void listar (TProduto *cabeca); int main() { TProduto *cabeca = NULL; /* Ponteiro para a cabeca da lista */ /* Ponteiro a ser usado para percorrer a lista no momento de desalocar seus elementos*/ TProduto *noatual; char q; /* Caractere para receber a opcao do usuario */ do { printf("\n\nOpcoes: \nI -> para inserir novo produto;\nL -> para listar os produtos; \nDigite S -> para sair \n:"); scanf("%c", &q); /* Le a opcao do usuario */ switch(q) { case 'i': case 'I': inserir(&cabeca); break; case 'l': case 'L': listar(cabeca); break; case 's': case 'S': break; default: printf("\n\n Opcao não valida"); } fflush(stdin); /* Limpa o buffer de entrada */ } while ((q != 's') && (q != 'S') ); /* Desaloca a memoria alocada para os elementos da lista */ noatual = cabeca; while (noatual != NULL) { cabeca = noatual->proximo; free(noatual); noatual = cabeca; } } /* Lista todos os elementos presentes na lista encadeada */ void listar (TProduto *noatual) { while( noatual != NULL) /* Enquanto não chega no fim da lista */ { printf("\n Codigo do veiculo: %d \nPreco:R$%.2lf", noatual->codigo, noatual->preço); /* Faz noatual apontar para o proximo no */ noatual = noatual->proximo; } } /* Funcao para inserir um novo no, ao final da lista */ void inserir (TProduto **cabeca) { TProduto *noatual, *novono; int cod; double preço; printf("\n Codigo do novo produto: "); scanf("%d", &cod); printf("\n preço do produto:R$"); scanf("%lf", &preço); if (*cabeca==NULL) /* Se ainda não existe nenhum produto na lista */ { /* cria o no cabeca */ *cabeca = (TProduto *) malloc(sizeof(TProduto)); (*cabeca)->codigo = cod; (*cabeca)->preço = preço; (*cabeca)->proximo = NULL; } else { /* Se já existem elementos na lista, deve percorre-la ate’ o seu final e inserir o novo elemento */ noatual = *cabeca; while(noatual->proximo != NULL) noatual = noatual->proximo; /* Ao final do while, noatual aponta para o ultimo no */ novono = (TProduto *)malloc(sizeof(TProduto));/* Aloca memoria para o novo no */ novono->codigo = cod; novono->preço = preço; novono->proximo = NULL; /* Faz o ultimo no apontar para o novo no */ noatual->proximo = novono; } }
×
×
  • Create New...