List and Pointers in C

0

I'm trying to create a static list, and I can not display the product name in the printf("\n Indice: %d Valor: %s",i,p->nomeProduto[i].valor); list, only the "ListList", the query function probably does not work.

Here is the whole code:

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

typedef struct tipoElemento{
    int valor;
}tElemento;

typedef struct tipoProduto{
    tElemento valorLista[100];
    int tamanho;
    int codProduto;
    char nomeProduto;
    int precoProduto;
    int valorDesconto;
    int estoqueProduto[600];
}tProduto;

void limpaTela(){
    system("@cls||clear");
}

void iniciarLista(tProduto *p){
    p->tamanho = 0;
}

void cadastrar(tProduto *p){
    if(p->tamanho < 100){
        int auxValor;
        char nome;
        limpaTela();
        printf("\n Informe o nome do produto: ");
        scanf("%s", &nome);
        //scanf("%d", &auxValor);
        p->nomeProduto = nome;
        p->valorLista[p->tamanho].valor = auxValor;
        p->tamanho++;
    } else {
        limpaTela();
        printf("Lista Cheia!\n");
        getch();
    }
}

void apresentar(tProduto *p){
    int i = 0;
    int tamanho = p->tamanho;
    if(tamanho <= 0){
        limpaTela();
        printf("\n Não existem registros na sua lista!");
        getch();
    } else {
        limpaTela();
        while(i < tamanho){
            printf("\n Indice: %d Valor: %s",i,p->nomeProduto[i].valor);
            i++;
        }
        getch();
    }
}

void consultar(tProduto *p){
    if(p->tamanho > 0){
        int auxValor;
        int i = 0;
        int encontrou;
        printf("\n Informe o codigo do produto para a consulta: ");
        scanf("%d", &auxValor);

        for(i < p->tamanho && encontrou == 0; i++;){
            if(p->valorLista[i].valor == auxValor){
                encontrou = 1;
            }
        }
        if(encontrou == 1){
            printf("\n Valor encontrado!");
            printf("\n %s",p->nomeProduto);
            getch();
        } else{
            printf("\n Valor nao encontrado!");
        }
    } else{
        printf("\n A lista esta vazia");
    }
}

void inserirDesconto(tProduto *p){
    if(p->tamanho > 0){
        //consultar(tProduto *p);
    }
}

int main(){
    tProduto listaProdutos;
    int opcao;

    // inicialzando a lista
    // listaProdutos = 0;
    iniciarLista(&listaProdutos);

    do {
        limpaTela();
        printf("\n 1 - Inserir");
        printf("\n 2 - Apresentar");
        printf("\n 3 - Consultar");
        printf("\n 4 - Inserir Desconto");
        printf("\n 5 - Excluir");
        printf("\n 0 - Sair");
        printf("\n Escolha uma opcao: ");
        scanf("%d", &opcao);
        switch(opcao){
            case 1: cadastrar(&listaProdutos); break;
            case 2: apresentar(&listaProdutos); break;
            case 3: consultar(&listaProdutos); break;
            case 4: inserirDesconto(&listaProdutos); break;
            //case 5: excluir(&tProduto); break; 
        }

    } while (opcao != 0);
}
    
asked by anonymous 05.03.2018 / 18:52

0 answers