Ir ao conteúdo
  • Cadastre-se
mariafernanda

erro na função remover produto

Recommended Posts

#include <stdio.h>#include <stdlib.h>#define max 100//Defininddo as Variáveis Globais.int i;//Estrutura de Voo.struct produto{       int codigo_produto[max];       char nome_produto[max][8];       char preco_produto[max][5];       char estoque[max][50];       };//Cabeçalho das Funções.void menu();void cadastrarProd();void ixibirProd();void removerProd();struct produto *ponteiro;//Função de MENU.void menu(){     int opMenu;       printf("\n\n\t_________________________");       printf("\n\t       MENU PRINCIPAL");       printf("\n\t------------------------\n\n");       printf("\n\t1- CADASTRAR PRODUTO.");       printf("\n\t2- EXIBIR PRODUTO.");       printf("\n\t3- REMOVER PRODUTO.");       printf("\n\t4- SAIR.\n\n");       printf("\n\tOPCAO: ");       scanf("%d",&opMenu);       system("cls");       switch (opMenu){           case 1:                cadastrarProd();                break;                case 2:                     ixibirProd();                     break;                     case 3:                          removerProd();                          break;                          case 4:                               break;                default:                        printf("\n\tOPCAO INVALIDA, TENTE NOVAMENTE\n\n");                        system("pause");                        system("cls");                        menu();                        break;               }       }//Função de Cadastro de Voo.void cadastrarProd(){     int opCadastro;     do{         ponteiro = (struct produto *)malloc (sizeof(struct produto));                      printf("\n\n\t________________________");                      printf("\n\t   MENU CADASTRAR PRODUTO.");                      printf("\n\t------------------------\n\n");                      printf("\n\tCODIGO DO PRODUTO: ");                      scanf("%d",&ponteiro->codigo_produto[i]);                      printf("\tNOME DO PRODUTO: ");                      scanf("%s",ponteiro->nome_produto[i]);                      printf("\tVALOR DO PRODUTO: ");                      scanf("%s",ponteiro->preco_produto[i]);                      printf("\tQUANTIDADE EM ESTOQUE: ");                      scanf("%s",ponteiro->estoque[i]);                      system("cls");                      printf("\n\n\t1- CADASTRAR OUTRO PRODUTO");                      printf("\n\t2- VOLTAR AO MENU\n\n");                      printf("\tOPCAO: ");                      scanf("%d",&opCadastro);                      system("cls");                      }                      while(opCadastro!=2);                      system("cls");                      menu();                      }//Função de Consulta Voo.void ixibirProd(){     int opConsultar;                     printf("\n\n\t________________________");                     printf("\n\t   MENU CONSULTAR PRODUTO.");                     printf("\n\t------------------------\n\n");                     printf("\n\tDIGITE O NUMERO DO PRODUTO\n");                     printf("\n\tNUMERO DO PRODUTO: ");                     scanf("%d",&opConsultar);                     if(ponteiro->codigo_produto[i]!=opConsultar){                     printf("\n\tREGISTRO DE PRODUTO NAO ENCONTRADO");                     printf("\n\t      TENTE NOVAMENTE\n\n");                     system("pause");                     system("cls");                     ixibirProd();                     }                     else{                          printf("\n\n\tNUMERO DO PRODUTO ENCONTRADO!!!\n\n");                          printf("\n\t------------------------------------------------");                          printf("\n\tNUMERO DO PRODUTO: %d ",ponteiro->codigo_produto[i]);                          printf("\n\tDATA DO PRODUTO: %s ",ponteiro->nome_produto[i]);                          printf("\n\tHORARIO DO PRODUTO: %s ",ponteiro->preco_produto[i]);                          printf("\n\tAEROPORTO DE SAIDA: %s ",ponteiro->estoque[i]);                          printf("\n\t------------------------------------------------\n\n");                          printf("\n\t      TECLE ENTER PARA RETORNAR AO MENU...\n\n\n");                          system("pause");                          system("cls");                          menu();                          }                     }       //Função de Remover Voo.void removerProd(){                    printf("\n\n\t________________________");                    printf("\n\t   MENU REMOVER PRODUTO.");                    printf("\n\t------------------------\n\n");                    printf("\n\tDIGITE O NUMERO DO PRODUTO QUE DESEJA REMOVER");                    printf("\n\tNUMERO DO PRODUTO: ");                    scanf("%d",ponteiro->codigo_produto[i]);                    }int main(int argc, char *argv[]){     menu(); //Chamando função de MENU.  system("PAUSE");  return 0;}

erro na funcao para remover.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maria fernanda, reveja sua maneira de armazenar seus produtos, pois com apenas 1 ponteiro, se você cadastrar muitos produtos, vai acabar perdendo o endereço deles.

faz um teste, cadastra 10 produtos, depois tenta exibir 5 deles.

Se você não tiver que fazer alocação dinâmica, use um vetor da sua struct, se tiver que usar alocação dinâmica, use uma lista para não perder o endereço dos produtos.

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

×