Galera tenho o seguinte problema, estou fazendo um programa baseado em um menu, cada opção do menu é realizada através de uma função. No entanto estou com problemas nas funções
consultar_peca_nome e vender_peca, ambas não exibem os prints que contém dentro do laço for.
#include <stdio.h>
// sistema para controlar estoque
// struct nome(30 caracteres), marca(30 caracteres), preço (real), quantidade em estoque(inteiro), estoque mínimo (inteiro)
// Utilize um vetor para armazenar as informações sobre as peças (máximo de 100 peças)
// O cadastro de peças deve ser feito uma a uma, ou seja, a cada inclusão deve ser perguntado se deseja incluir outra
struct ficha
{
char nome[30];
char marca[30];
float preco;
int quantidade_estoque;
int estoque_minimo;
};
// inclui peca
int incluir_peca (struct ficha pecas[100], int i)
{
char resp;
do
{
printf ("\n Nome: ");
fflush (stdin);
gets (pecas[i].nome);
printf ("\n Marca: ");
gets (pecas[i].marca);
printf ("\n Preco: ");
scanf ("%f", &pecas[i].preco);
printf ("\n Quantidade em Estoque: ");
fflush (stdin);
scanf ("%d", &pecas[i].quantidade_estoque);
printf ("\n Estoque minimo: ");
scanf ("%d", &pecas[i].estoque_minimo);
i ++;
printf ("\n Deseja incluir novo cliente? (S/N)");
fflush (stdin);
scanf ("%c", &resp);
} while ((resp == 'S') || (resp == 's'));
return i;
}
// consulta peça por nome
void consultar_peca_nome (struct ficha pecas[100], int q_pecas, char nome_peca[30])
{
int i;
for (i=0; i<q_pecas; i++)
{
if (pecas[i].nome == nome_peca)
{
printf (" Nome: %s \n ", pecas[i].nome);
printf (" Marca: %s \n", pecas[i].marca);
printf (" Preco: %.2f \n", pecas[i].preco);
printf (" Quantidade em estoque: %d \n", pecas[i].quantidade_estoque);
printf (" Quantidade minima: %d \n", pecas[i].estoque_minimo);
}
}
}
// exibe peças abaixo do estoque minimo
void exibir_peca_estoque_baixo (struct ficha pecas[100], int q_pecas)
{
int i;
for (i=0; i<q_pecas; i++)
{
if (pecas[i].estoque_minimo pecas[i].quantidade_estoque)
{
printf (" Nome: %s \n ", pecas[i].nome);
printf (" Quantidade em estoque: %d \n", pecas[i].quantidade_estoque);
printf (" Quantidade minima: %d \n", pecas[i].estoque_minimo);
}
}
}
void vender_peca (struct ficha pecas[100], int q_pecas)
{
int i;
char nome_peca[30];
int vendido;
printf ("\n Digite o Nome da Peca: ");
fflush(stdin);
gets (nome_peca);
printf ("\n Quantidade que deseja comprar: ");
scanf ("%d", &vendido);
for (i=0; i<q_pecas; i++)
{
if (pecas[i].nome == nome_peca)
{
pecas[i].quantidade_estoque = pecas[i].quantidade_estoque - vendido;
if (pecas[i].quantidade_estoque < pecas[i].estoque_minimo)
{
printf ("\n A peça %s ficou com estoque %d - ABAIXO DO MÍNIMO", pecas[i].nome, pecas[i].quantidade_estoque);
}
}
}
}
int main ()
{
struct ficha pecas[100];
int op, valor = 0;
do
{
printf ("\n Escolha uma opcao");
printf ("\n 1- Incluir Peca");
printf ("\n 2- Consultar Peca por Nome");
printf ("\n 3- Exibir Pecas com estoque baixo");
printf ("\n 4- Vender Peca");
printf ("\n 5- Sair \n \n");
scanf ("%d", &op);
switch (op)
{
char nome[30];
case 1:
valor = incluir_peca (pecas, valor);
break;
case 2:
printf ("\n Digite um nome: ");
fflush (stdin);
gets (nome);
consultar_peca_nome (pecas, valor, nome);
break;
case 3:
exibir_peca_estoque_baixo (pecas, valor);
break;
case 4:
vender_peca (pecas, valor);
break;
}
} while ((valor < 100) && (op != 5));
}