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

Problema na hora de de clarar variavel tipo CHAR


Aislan Macedo

Pergunta

Ai pessoal estou comesse problema aki, é so eu declarar uma variavel do tipo char que o programa trava .

/*

crie uma estrutura produtos com os segintes campos

codigo

nome-produto

descricao

quantidade

preço

faça um proframa com as seguinte funcionabilidades:

cadastrar produtos

listar produtos

localizar produtos por codigos

localizar produtos por nome

*/

# include <stdlib.h>
# include <stdio.h>
# include <string.h> 
main (){
     int escolha,n,i,status=0,bc=0;
     char bn[50];
     struct {
            int cod;
            char nome[50];
            char desc[50];
            int quant;
            float preço;
            }cadas[n];
     
do {
     printf("\n+--------------------------------+");
     printf("\n|              MENU              |");
     printf("\n+--------------------------------+");
     printf("\n|1- CADASTRAR PRODUTOS           |");
     printf("\n|2- LISTAR PRODUTOS              |");
     printf("\n|3- LOCALIZAR PRODUTOS POR CODIGO|");
     printf("\n|4- LOCALIZAR PRODUTOS POR NOME  |");
     printf("\n|5- SAIR                         |");
     printf("\n+--------------------------------+\n");
     printf("\nOPCAO: ");
     scanf("%d",&escolha);
     system ("cls");
     
//------------------------------------------------------------

     switch (escolha){
            case 1:
                 printf("QUANTOS PRODUTOS A CADASTRAR: ");
                 scanf("%d",&n);
                 system("cls");
                     for (i=0;i<n;i++){// entrada de dados 
                   printf("CODIGO : ");
                   scanf("%d",&cadas[i].cod);
                   printf("\nNOME: ");
                   fflush(stdin);
                   gets(cadas[i].nome);
                   printf("\nDESCRICAO: ");
                   fflush(stdin);
                   gets(cadas[i].desc);
                   printf("\nQUANTIDADE:  ");
                   scanf("%d",&cadas[i].quant);
                   printf("\nPRECO: ");
                   scanf("%f",&cadas[i].preço);
                   system ("cls"); 
                   status=1;                  
                   }
                    break;
                    
                    
              case 2://listar produtos
                   if(status>0){ 
                      for (i=0;i<n;i++){
                         printf ("CODIGO: %d \nNOME: %s \nDESCRICAO: %s \nQUANTIDADE: %d \nPRECO: %0.2f \t",cadas[i].cod,cadas[i].nome,cadas[i].desc,cadas[i].quant,cadas[i].preço);           
                         printf("\n+-----------------------------------------------------------------------------+\n");
                      }//FECHA O FOR
                   }//FECHA IF
                   else 
                        printf("\n\n\a\t!!ERRO [171] !não há PRODUTOS CADASTRADOS || CADASTRAR PRODUTOS!\n\n");
              break;
              
              
              
              
              case 3://localizar produtos por cod
                   if(status>0){
                      system ("cls");
                      printf("Digite o CODIGO DO PRODUTO: ");
                      scanf("%d",&bc);
                          for(i=0;i<n;i++){      
                              if (bc==cadas[i].cod)
                              printf ("\n\nCODIGO: %d \nNOME: %s \nDESCRICAO: %s \nQUANTIDADE: %d \nPRECO: %0.2f\n\n\n\n",cadas[i].cod,cadas[i].nome,cadas[i].desc,cadas[i].quant,cadas[i].preço);                      
                              }//fecha for
                   }// fecha if
                   
                   else 
                        printf("\n\n\a\t!!ERRO [171] !não há PRODUTOS CADASTRADOS || CADASTRAR PRODUTOS!\n\n");
                        
             case 4://localizar produtos por nome
                   if(status>0){
                      system ("cls");
                      printf("Digite o CODIGO DO PRODUTO: ");
                      scanf("%d",&bn);
                          for(i=0;i<n;i++){      
                              if (bn==cadas[i].nome)
                              printf ("\n\nCODIGO: %d \nNOME: %s \nDESCRICAO: %s \nQUANTIDADE: %d \nPRECO: %0.2f\n\n\n\n",cadas[i].cod,cadas[i].nome,cadas[i].desc,cadas[i].quant,cadas[i].preço);                      
                              }//fecha for
                   }// fecha if
                   
                   else 
                        printf("\n\n\a\t!!ERRO [171] !não há PRODUTOS CADASTRADOS || CADASTRAR PRODUTOS!\n\n");
            
            
            }//FEHA SWITCH
            
            
            
        }while (escolha != 5);
     }

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

já arrumei a declaracao, eu não defini o tamanho dela

char bn;


agora estou com outro problema :

main (){
     int escolha,n,i,status=0,bc=0;
     char bn;
     struct {
            int cod;
            char nome[50];
            char desc[50];
            int quant;
            float preço;
            }cadas[n];
     
do {
     printf("\n+--------------------------------+");
     printf("\n|              MENU              |");
     printf("\n+--------------------------------+");
     printf("\n|1- CADASTRAR PRODUTOS           |");
     printf("\n|2- LISTAR PRODUTOS              |");
     printf("\n|3- LOCALIZAR PRODUTOS POR CODIGO|");
     printf("\n|4- LOCALIZAR PRODUTOS POR NOME  |");
     printf("\n|5- SAIR                         |");
     printf("\n+--------------------------------+\n");
     printf("\nOPCAO: ");
     scanf("%d",&escolha);
     system ("cls");
     
//------------------------------------------------------------

     switch (escolha){
            case 1:
                 printf("QUANTOS PRODUTOS A CADASTRAR: ");
                 scanf("%d",&n);
                 system("cls");
                     for (i=0;i<n;i++){// entrada de dados 
                   printf("CODIGO : ");
                   scanf("%d",&cadas[i].cod);
                   printf("\nNOME: ");
                   fflush(stdin);
                   gets(cadas[i].nome);
                   printf("\nDESCRICAO: ");
                   fflush(stdin);
                   gets(cadas[i].desc);
                   printf("\nQUANTIDADE:  ");
                   scanf("%d",&cadas[i].quant);
                   printf("\nPRECO: ");
                   scanf("%f",&cadas[i].preço);
                   system ("cls"); 
                   status=1;                  
                   }
                    break;
                    
                    
              case 2://listar produtos
                   if(status>0){ 
                      for (i=0;i<n;i++){
                         printf ("CODIGO: %d \nNOME: %s \nDESCRICAO: %s \nQUANTIDADE: %d \nPRECO: %0.2f \t",cadas[i].cod,cadas[i].nome,cadas[i].desc,cadas[i].quant,cadas[i].preço);           
                         printf("\n+-----------------------------------------------------------------------------+\n");
                      }//FECHA O FOR
                   }//FECHA IF
                   else 
                        printf("\n\n\a\t!!ERRO [171] !não há PRODUTOS CADASTRADOS || CADASTRAR PRODUTOS!\n\n");
              break;
              
              
              
              
              case 3://localizar produtos por cod
                   if(status>0){
                      system ("cls");
                      printf("Digite o CODIGO DO PRODUTO: ");
                      scanf("%d",&bc);
                          for(i=0;i<n;i++){      
                              if (bc==cadas[i].cod)
                              printf ("\n\nCODIGO: %d \nNOME: %s \nDESCRICAO: %s \nQUANTIDADE: %d \nPRECO: %0.2f\n\n\n\n",cadas[i].cod,cadas[i].nome,cadas[i].desc,cadas[i].quant,cadas[i].preço);                      
                              }//fecha for
                   }// fecha if
                   
                   else 
                        printf("\n\n\a\t!!ERRO [171] !não há PRODUTOS CADASTRADOS || CADASTRAR PRODUTOS!\n\n");
                        
             case 4://localizar produtos por nome
                   if(status>0){
                      system ("cls");
                      printf("Digite o NOME DO PRODUTO: ");
                     [color=#FF0000]gets(bn);[/color]
                          for(i=0;i<n;i++){      
                              if (strcmp(bn,cadas[i].nome)!=0)
                              printf ("\n\nCODIGO: %d \nNOME: %s \nDESCRICAO: %s \nQUANTIDADE: %d \nPRECO: %0.2f\n\n\n\n",cadas[i].cod,cadas[i].nome,cadas[i].desc,cadas[i].quant,cadas[i].preço);                      
                              }//fecha for
                   }// fecha if
                   
                   else 
                        printf("\n\n\a\t!!ERRO [171] !não há PRODUTOS CADASTRADOS || CADASTRAR PRODUTOS!\n\n");
            
            
            }//FEHA SWITCH
            
            
            
        }while (escolha != 5);
     }

na hora de ler o valor de bn, dá um erro. será porque eu não defini o tamanho da variavel, por que se eu defini tamanho da variavel ele trava.

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

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,4k
×
×
  • Criar Novo...