Ir ao conteúdo
  • Cadastre-se

Lucas_Vinicius_147

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Boa tarde, sou iniciante em programação em C e estou tentando criar um programa que registre produtos de um supermercado e suas informações como unidades diponíveis, nome, preço de compra e venda etc.. No entanto, a quantidade de produtos a serem cadastrados é desconhecida, preciso que o usuário possa, por exemplo, regitrar x produtos numa execução, voltar ao menu e depois registrar mais y produtos. Preciso fazer isso usando malloc e realloc, mas estou tendo alguns problemas e dúvidas. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> struct n_produto { char nome[150]; float valorV; float valorC; int unidades; }; void menu(); void new_p(struct n_produto *newp, int *qt); int main() { setlocale(LC_ALL,""); // Variáveis int op,qtp=1; struct n_produto *newp; newp = malloc(qtp*sizeof(struct n_produto)); if(newp==NULL) { printf("erro ao alocar"); exit(1); } while(op>=0) { menu(); printf("\n\n\n\tDigite o número correspondente\n\ta opção desejada: "); scanf("%d",&op); system("cls"); printf("\n"); switch(op) { case 1: new_p(newp,&qtp); break; } } return 0; } void menu() { printf("\t=====PAINEL DE CONTROLE DO SUPERMERCADO=====\n\n"); printf("\n\t[1] Adicionar produtos ao estoque.\n\n"); } void new_p(struct n_produto *newp, int *qt) { if(*qt > 1) newp += *qt; printf("\tNome do produto: "); fflush(stdin); fgets(newp->nome,150,stdin); printf("\tUnidades: "); scanf("%d",&newp->unidades); printf("\tPreço de venda: "); scanf("%f",&newp->valorV); printf("\tPreço de compra: "); scanf("%f",&newp->valorC); system("cls"); *qt = *qt + 1; // Aumenta o valor que representa quantidades de produtos newp = realloc(newp,*qt*sizeof(struct n_produto)); // Realoca o vetor com uma posição a mais para um próximo produto if(newp==NULL) { printf("erro ao realocar"); exit(1); } } A alocação e realocação estão corretas? Nas execuções que fiz em nenhum momento o erro de ponteiro NULL foi exibido, mas ainda assim o programa para quando tento ler valores nas posições supostamente realocadas. Esse método newp += *qt serve para pular a posição do ponteiro ou está errado? Agradeço a quem puder ajudar, estou a dias tentando dar continuidade a esse programa mas fiquei travado nessa parte.
  2. Alguém pode me ajudar aqui por favor? Tô resolvendo uma lista de exercícios de C sobre estruturas de repetição e tô totalmente travado nesse aqui, agradeço a quem puder me ajudar na parte lógica desse exercício. 30. Faça programas para calcular as seguintes sequencias: ˆ 1 + 2 + 3 + 4 + 5 + ... + n 1 − 2 + 3 − 4 + 5 + ... + (2n − 1) 1 + 3 + 5 + 7 + ... + (2n − 1)

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...