#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
struct produto{
int codigo;
char nome[50];
int quantidade;
float preco;
};
void cadastro (struct produto *p, int N){
for (int i=0; i<N; i++){
cout << "Informe o codigo do produto: ";
cin >> p[i].codigo;
cout << "Nome do produto: ";
cin >> p[i].nome;
cout << "Quantidade disponivel: ";
cin >> p[i].quantidade;
cout << "Preco: R$";
cin >> p[i].preco;
}
}
void maior_preco(struct produto *p, int N){
float aux=0;
int codigo;
for(int i=0; i<N; i++){
if(p[i].preco> aux){
aux=p[i].preco;
}
}
for(int i=0; i<N; i++){
if(p[i].preco == aux){
cout << "O produto com maior preco de venda eh " << p[i].nome << endl;
}
}
}
void maior_quantidade(struct produto *p, int N){
float aux=0;
char nome[50];
for(int i=0; i<N; i++){
if(p[i].quantidade > aux){
aux=p[i].quantidade;
}
}
for(int i=0; i<N; i++){
if(p[i].quantidade == aux){
cout << "O produto com maior quantidade eh " << p[i].nome << endl;
}
}
}
int main(){
int N;
cout << "Informe quantos produtos a serem cadastrados: ";
cin >> N;
struct produto *p = (struct produto*) malloc (N*sizeof(struct produto));
cadastro(p, N);
maior_preco(p, N);
maior_quantidade(p, N);
free(p);
return 0;
}
Estou tentando resolver o exercicio abaixo:
Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto - representado por um valor inteiro; Nome do produto - com até 50 caracteres; Quantidade disponível no estoque - representado por um número inteiro; Preço de venda - representado por um valor real.
(a) Defina uma estrutura, denominada produto, que tenha os campos apropriados para guardar as informações de um produto
(b) Crie um conjunto de N produtos (N e um valor fornecido pelo usuário) e peça ao usuário para entrar com as informações de cada produto
(c) Encontre o produto com o maior preço de venda
(d) Encontre o produto com a maior quantidade disponível no estoque.
Estou tendo problema com o vetor de char. Sei que em c++ deveria declarar como string, porém se declarar como string da erro na alocação de memória e o código n roda. Preciso que esse vetor de char considere os espaços, ou seja que aceite nomes compostos. Não estou sabendo fazer.