Ir para conteúdo
Fórum Script Brasil

felixaugusto123

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por 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;
    }
    }
     

×
×
  • Criar Novo...