Ir ao conteúdo
  • Cadastre-se

erro na função remover produto


mariafernanda

Posts recomendados

#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.

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...