Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com STRUCT


mycelo

Pergunta

Boa tarde pessoal tenho um exercisio q devo entregar hj a noite é o seguinte:

eu tenho q criar um menu q a pessoa tem as seguintes opçoes

1:cadastrar

2:retirar

3:buscar pelo codigo

4:buscar pela descriçao

5:apagar

6:sair

eu devo dividir essas opçoes em funçoes e utilizar uma struct para o cadastro

estou com o seguinte problema nessa funçao:

eu tenho q cadastrar os dados e verificar se o codigo já foi cadastrado antes se for verdade eu tenho q somar a qnt com o codigo já existente

int CADASTRA (struct peca X[])
{
  
  printf("\n Digite o codigo: ");
  scanf("%s", &X[i].cod);
  
  printf("\n Digite a quantidade: ");
  scanf("%d", &X[i].qnt);
  
  qnt2 = X[i].qnt;
  
  i++;

  for (j=0;j=i; j++)       // <--- loop do for n funciona o problema trava aki
  {
  if (X[j].cod == X[i].cod)
  X[i].qnt = qnt2 + X[i].qnt;
  }

  printf("\n Digite a descricao: ");
  scanf("%s", &X[i].desc);
  printf("\n Digite o modelo: ");
  scanf("%s", &X[i].mod);  
  printf("\n Digite o valor: ");
  scanf("%f", &X[i].val);
  printf("\n Digite o fabricante: ");
  scanf("%s", &X[i].fab);

  
   return(0);   
}
o codigo inteiro:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

  struct peca
 {
    char cod[100], desc[50], mod[50], fab[50];
    int qnt;
    float val;
 };


struct peca total[1000];

int APAGA (); 
int BUSCAC (struct peca X[]);
int BUSCAD (struct peca X[]);
int MENU ();
int CADASTRO(struct peca X[]);
int BUSCA(struct peca X[]);
int SAIR();
int qnt2 = 0, j , i = 0;


 int main( )
{
   do {
          system ("cls");
          MENU();
      }while (1);
      
      return(0);
}

int CADASTRA (struct peca X[])
{
  
  printf("\n Digite o codigo: ");
  scanf("%s", &X[i].cod);
  
  printf("\n Digite a quantidade: ");
  scanf("%d", &X[i].qnt);
  
  qnt2 = X[i].qnt;
  
  i++;

  for (j=0;j=i; j++)
  {
  if (X[j].cod == X[i].cod)
  X[i].qnt = qnt2 + X[i].qnt;
  }

  printf("\n Digite a descricao: ");
  scanf("%s", &X[i].desc);
  printf("\n Digite o modelo: ");
  scanf("%s", &X[i].mod);  
  printf("\n Digite o valor: ");
  scanf("%f", &X[i].val);
  printf("\n Digite o fabricante: ");
  scanf("%s", &X[i].fab);

  
   return(0);   
}

int RETIRADA (struct peca X[])
{
 printf("\n Digite o codigo: ");
 scanf("%s", &X[i].cod);

 for (j=0; j=i; j++)
  {
  if (X[j].cod == X[i].cod)
  {
  printf("\n Digite a quantidade a ser retirada: ");
  scanf("%d", &qnt2);
   if (qnt2>X[i].qnt)
   printf("Quantidade digitada maior q existente");
   else
   X[i].qnt = X[i].qnt - qnt2;
  }
  }

 return(0);
}

int MENU ()
{
   char OP;
   printf("\t\t\t MENU \n\n\n");
   printf("1- CADASTRAR \n");
   printf("2- BUSCA POR CODIGO \n");
   printf("3- BUSCA POR DESCRICAO \n");
   printf("4- APAGAR TUDO\n");
   printf("5- SAIR \n");
   do {
         OP = getch(); 
   }while (OP < '1' || OP > '4');
   
   switch (OP)
   {
      case '1': CADASTRA(total);
      break;
      case '2': BUSCAC(total);
      break;
      case '3': BUSCAD(total);
      break;
      case '4': APAGA();
      break;
      case '5': SAIR();
   }
}   

int BUSCAC (struct peca X[])

{ 
  int Y=0;
  char N[40];
  printf("\n Qual codigo deseja pesquisar: ");
  scanf("%s", &N);
  while (strcmp(X[Y].cod, N) != 0)
      {
         Y++;
         if(i >= Y)
         break;
         
       }
       if(Y < i) 
         {
           printf("\n Codigo: %s" , X[Y].cod);
           printf("\n Quantidade: %d" , X[Y].qnt);
           printf("\n Descricao: %s" , X[Y].desc);
           printf("\n Modelo: %s" , X[Y].mod);
           printf("\n Valor: %f" , X[Y].val);
           printf("\n Tel: %s" , X[Y].fab);
           
         } 
         getche(); 
         return(0);      
    

}


int BUSCAD (struct peca X[])
{ 
  int Y=0;
  char N[40];
  printf("\n Qual descricao deseja pesquisar: ");
  scanf("%s", &N);
  while (strcmp(X[Y].desc, N) != 0)
      {
         Y++;
         if(i >= Y)
         break;
         
       }
       if(Y < i) 
         {
           printf("\n Codigo: %s" , X[Y].cod);
           printf("\n Quantidade: %d" , X[Y].qnt);
           printf("\n Descricao: %s" , X[Y].desc);
           printf("\n Modelo: %s" , X[Y].mod);
           printf("\n Valor: %f" , X[Y].val);
           printf("\n Tel: %s" , X[Y].fab);
           
         } 
         getche(); 
         return(0);      
    

}

int SAIR ()
{
  exit(0);
}

int APAGA ()
{
  i = 0;
}

muito obrigado!!!!!!! qualquer ajuda é bem vinda vlw!

Editado por mycelo
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...