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!