Logo Hardware.com.br
heitorkenzou
heitorkenzou Novo Membro Registrado
3 Mensagens 0 Curtidas

Programa parando de funcionar em C.

#1 Por heitorkenzou 24/06/2021 - 12:05
Bom dia, estou fazendo um trabalho da faculdade em C, é relativamente simples, é um programa de cadastro de usuários e venda de produtos, porém na parte de pesquisar o usuário estou com um problema, quando executo o código e entro na parte de venda de produtos, ele para de funcionar.

[code=c]#include

#include

#include

char nomeCliente[100][50];
int cpf[50][30];

char descricaoProduto[20][30];
int valorDeVenda[50];

int menu;

void cadastroClientes();
void cadastroProduto();
void venderProdutos();

int main() {
printf("1 - Cadastrar usuário");
printf("\n2 - Cadastrar produto\n");
printf("3 - Vender Produtos\n");
printf("4-Relatorios\n");
printf("\nOpção a ser acessada: ");
scanf("%d", & menu);

switch (menu) {
case 1:
cadastroClientes();
break;
case 2:
cadastroProduto();
break;
case 3:
venderProdutos();
break;
}
}

void cadastroClientes() {
static int linha;
do {

printf("\nNome: \n");
scanf("%s", & nomeCliente[i]);
printf("\n CPF: ");
scanf("%s", & cpf);
printf("\ndigite 1 para fazer outro cadastro ou outro valor para voltar ao menu ");
scanf("%d", & menu);
if (menu != 1) {
main();
}
linha++;
} while (menu == 1);
}

void cadastroProduto() {
do {
printf("\n nome do produto: ");
scanf("%s", & descricaoProduto);
printf("\npreço de venda ");
scanf("%s", & valorDeVenda);
printf("\n digite 2 para fazer outro cadastro de produto ou outro número para voltar ao menu ");
scanf("%d", & menu);
if (menu != 2) {
main();
}
} while (menu == 2);
}

void venderProdutos() {

int i;
char cliente;

printf("digite o nome do cliente: ");
scanf("%c", & cliente);

for (i = 0; i < 100; i++) {
if (strcmp(nomeCliente[i][i], cliente) == 0) {
printf("encontrou");
} else {
printf("erro");
}
}
}[/code]


No caso o erro acontece em algum lugar do código no final, na função "venderProdutos()", e só quando uso o strcmp para comparar duas variáveis, pois testei comparar [plain]("nomeCliente[i], "a")[/plain] e deu certo sem erros.
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#2 Por esquiloesper...
25/06/2021 - 18:22
O erro não está na função, mas na pouca atenção.
Observe que você criou a matriz com o tamanho de 100x50:

char nomeCliente[100][50]


No entanto, no loop estes limites são desrespeitados, porque o teto de 100 foi usado tanto para a linha como para a coluna: 100x100. daa.png
Resolva isto, deve funcionar.
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal