Ir ao conteúdo
  • Cadastre-se

Struct em c


Posts recomendados

Galera to tentando fazer uma questão que pede para cadastrar produtos e depois alterar os preços, na hora de altera os preços ,eu escolho p alterar o preço do primeiro item e ele altera o do segundo e vice-versa.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define TAM 2

struct produto{
char descricao[31];
int codigo;
int qnt_estoque;
float valor_uni;
};

void preencher( struct produto v[],int tam){
int i;
for (i=0;i<TAM;i++){

printf("DIGITE A DESCRICAO DO PRODUTO : ");
fflush(stdin);
gets(v[i].descricao);
fflush(stdin);
printf("DIGITE O VALOR UNITARIO DO PRODUTO %s: ",v[i].descricao);
scanf("%f",&v[i].valor_uni);
fflush(stdin);
printf("DIGITE A QUATIDADE EM ESTOQUE DO PRODUTO %s: ",v[i].descricao);
scanf("%d",&v[i].qnt_estoque);
printf("\n PRODUTO CADASTRADO COM SUCESSO\n");
}
}

void alterar( struct produto v[],int tam){
int i, num;
for (i=0;i<TAM;i++) // Laço para listar os produtos cadastrados
{
    printf("CODIGO: %d  / DESCRICAO: %s  / PRECO: %7.2f  / QUANTIDADE: %d\n", i+1,v[i].descricao,v[i].valor_uni,v[i].qnt_estoque); 
}
printf("\n DIGITE O CODIGO DO PRODUTO PARA ALTERAR O PRECO: ");
scanf("%d",&num);
printf("\n\n");
printf("DIGITE O NOVO PRECO: ");
scanf("%f",&v[num].valor_uni); 
printf("\nPRECO ALTERADO COM SUCESSO!");
getch();
system("cls");
} 

void imprimir(struct produto v[],int tam){
	int i;
	system("cls");
for (i=0;i<TAM;i++){
		printf("CODIGO: %d  / DESCRICAO: %s  / PRECO: %7.2f  / QUANTIDADE: %d\n", i+1,v[i].descricao,v[i].valor_uni,v[i].qnt_estoque); 

}

	}

int main(){
	struct produto vetor[TAM];
	int i;
	preencher(vetor,TAM);
	alterar(vetor,TAM);

	imprimir(vetor,TAM);

}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Eduardo Diniz

 

Nesse trecho aqui:

 

printf("\n DIGITE O CODIGO DO PRODUTO PARA ALTERAR O PRECO: ");
scanf("%d",&num);
printf("\n\n");
printf("DIGITE O NOVO PRECO: ");
scanf("%f",&v[num].valor_uni); 
printf("\nPRECO ALTERADO COM SUCESSO!");
getch();
system("cls");

 

O código do produto se inicia em 1, porém o vetor é inicializado em 0.

Você tem que subtrair 1 aqui:

 


printf("DIGITE O NOVO PRECO: ");
scanf("%f",&v[num - 1].valor_uni);  <<<<<<<<<<<<<

 

Ao digitar o código 1, o programa deve buscar o produto no vetor 0 e não no vetor 1.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!