Boa tarde, estou com dificuldades para terminar o seguinte algoritmo:
Uma loja quer registrar suas vendas mensais.
Cada venda deve ter:
1. Código do produto [100]
2. Código do vendedor [10]
3. Código do cliente [40]
4. Valor da unidade de cada produto vendido
5. Qntd. de produtos vendidos
6. Formas de pagamento, que podem ser:
6.1. À vista (dinheiro), com desconto de 5% ao valor da unidade
6.2. À vista (cartão), o preço fica o mesmo
6.3. Parcelado, com acréscimo de 10% ao da unidade
No início do programa, o usuário tem de informar quantas vendas serão cadastradas.
Após isso, o usuário vai digitar todos os dados de cada uma das vendas que serão registrada. Quando a digitação terminar, o programa deve informar o produto que deu maior faturamento (valor unitário X qntd. de vnda), o cód. do vendedor que faturou mais, o cód. do cliente que mais comprou e o faturamento total do mês.
Ah, sendo que as informações do valor total de vendas tanto do produto, quanto por vendedor, quanto por cliente deve estar nos vetores de 300, 10 e 100 respectivamente.
O programa deve usar 3 funções:
1a. não terá parâmetros e deve pedir que o usuário digite cada um dos dados de uma única venda da seguinte forma: os códigos de produto, de vendedor e de clientes.
2a. para caso o usuário digite algum valor menor que 1 ou maior do que o limite, a função tem de usar a estrutura DO e WHILE até que o usuário digite um valor satisfatório. Essa função seria "dentro" da 1a função.
3a. terc_funcao (float *vet, int limite). Esta deve receber como parâmetro um vetor de vendas(dos produtos, dos vendedores ou dos clientes) e a qntd. de valores que existem nesse vetor. A função deve retornar o código(que é o indice do vetor) do maior valor encontrado nesse vetor. Essa procura pode ser feita pela estrutura FOR.
A main ficaria então para receber cada registro de venda lido pela 1a função e armazenará o valor total da venda nos três vetores(produtos, vendedores, clientes), fazendo assim somas por produto, por vendedor e por cliente, além do faturamento mensal.
O que já tenho
#include <stdio.h> #include <stdlib.h> #include<math.h> void LeVenda(){ printf("Digite o codigo do produto:"); LeCodigo(100); venda.produto = a; printf("Digite o codigo do vendedor:"); LeCodigo(10); venda.vendedor = a; printf("Digite o codigo do cliente:"); LeCodigo(40); venda.cliente = a; printf("Digite a quantidade vendida:"); scanf("%d",&venda.qtde); printf("Digite o valor unitario da venda:"); scanf("%f",&venda.valor_un); venda.valorT = valor_un * qtde printf ("Escolha a forma de pagamento:\n Digite 1 para a vista(dinheiro)\n Digite 2 caso for a vista(cartao)\n Digite 3 caso seja parcelado" switch( "forma_de_pagamento" ) { case 1: valorT = valorT - 1/20*valorT; break; case 2: valorT = valorT; break; case 3: valorT = valorT + 1/10*valorT; break default: printf ("Voce digitou uma opcao invalida!"); } } int LeCodigo(int limite){ int a; do{ printf("Digite o codigo do produto: "); scanf("%d",&a); if(a<1 || a>limite) printf("Codigo incorreto, de outro."); }while(a<1 || a>limite); return a; } int produto[100],vendedor[10],cliente[40],i; struct venda{ int produto,vendedor,cliente,qtde; float valorT; }venda[i]; int terc_funcao(float *vet[], int limite){ float maior = 0; int indice = 0 int i; for(i=0;i<limite;i++){ if(vet[i]>maior){ maior = vet[i]; indice = i; } } return indice; } main(){ int n_vendas, q, ; printf("Digite a quantas vendas irao ser feitas: "); scanf("%d",&n_vendas); for(q=0;q<n_vendas;q++){ void levenda(); vetfaturamento = venda.unitario
-----------
Minhas dúvidas são principalmente no que diz respeito à struct... como será retornado para a função principal, suas variáveis nos vetores...
Obrigado.