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);
}
Pergunta
Aislan Macedo
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 kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.