Então é assim...tenho isso feito....
A função calcula_troco, identifica quantas moedas de cada valor foram inseridas. Só que quando entra no if não calcula o troco, então coloquei num ciclo for, só que agora aparece um erro dizendo que a variavel produto não foi declarada e um erro no switch também com o mesmo problema. Já pesquisei em varios livros e video aulas e a declaração da variavel não está mal...porque o compilador não aceita? E outra coisa, se eu colocar moeda2e[20] e disser caixa.moeda2e[20]+caixa.stockm2e a seguir a instrução que conta quantas moedas nesse valor há, está correto?
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
float calcula_troco(caixa.stockm2e,caixa.stockm1e,caixa.stockm50c,caixa.stockm20c,caixa.stockm10c,caixa.stockm5c);
void main()
{
struct Caixa{
int moeda2e[10],moeda1e[10],moeda50c[10],moeda20c[10],moeda10c[10],moeda5c[10];
int stockm2e,stockm1e,stockm50c,stockm20c,stockm10c,stockm5c;
}caixa;
struct Produto{
char nome[20];
int codigo_produto;
float valor_produto;
int quant_produto;
}produto[5];
produto[0].nome[20] ='Bolicao';
produto[0].codigo_produto = 1;
produto[0].valor_produto = 1.00;
produto[0].quant_produto = 10;
printf("Escolha o produto e digite o codigo correspondente\n");
printf("1 - BOLICAO\n");
printf("2 - TUC TUC\n");
printf("3 - KIT KAT\n");
printf("4 - RUFFLES\n");
printf("5 - COCA-COLA\n");
printf("6 - REDBULL\n");
scanf("%d",&produto[].codigo_produto);//qual o valor devo colocar nessa instruçao??
switch(produto){
case 1:
printf("O valor e %f\n",produto[0].valor_produto);
printf("Introduza o pagamento\n");
calcula_troco();
break;
case 2:
printf("O valor e %f\n",produto[1].valor_produto);
printf("Introduza o pagamento\n");
calcula_troco();
break;
case 3:
printf("O valor e %f\n",produto[2].valor_produto);
printf("Introduza o pagamento\n");
calcula_troco();
break;
case 4:
printf("O valor e %f\n",produto[3].valor_produto);
printf("Introduza o pagamento\n");
calcula_troco();
break;
case 5:
printf("O valor e %f\n",produto[4].valor_produto);
printf("Introduza o pagamento\n");
calcula_troco();
break;
case 6:
printf("O valor e %f\n",produto[5].valor_produto);
printf("Introduza o pagamento\n");
calcula_troco();
break;
}
float calcula_troco(caixa.stockm2e,caixa.stockm1e,caixa.stockm50c,caixa.stockm20c,caixa.stockm10c,caixa.stockm5c){
float pagamento,troco;
printf("Introduza o pagamento\n");
scanf("%f",&pagamento);
caixa.stockm2e = (int)pagamento/2;
pagamento = pagamento - (caixa.stockm2e*2);
caixa.stockm1e = (int)pagamento/1;
pagamento = pagamento - (caixa.stockm1e*1);
caixa.stockm50c = (float)pagamento/0.5;
pagamento = pagamento - (caixa.stockm50c*0.5);
caixa.stockm20c = (float)pagamento/0.2;
pagamento = pagamento - (caixa.stockm20c*0.2);
caixa.stockm10c = (float)pagamento/0.1;
pagamento = pagamento - (caixa.stockm10c*0.1);
caixa.stockm5c = (float)pagamento/0.05;
pagamento = pagamento - (caixa.stockm5c*0.05);
printf("Numero de moedas de 2 euros e %d\n", caixa.stockm2e);
printf("Numero de moedas de 1 euro e %d\n", caixa.stockm1e);
printf("Numero de moedas de 0,50 centimos e %d\n", caixa.stockm50c);
printf("Numero de moedas de 0,20 centimos e %d\n", caixa.stockm20c);
printf("Numero de moedas de 0,10 centimos e %d\n", caixa.stockm10c);
printf("Numero de moedas de 0,05 centimos e %d\n", caixa.stockm5c);
int i;
for(i=0; i<=5 ; i++){
if(pagamento>=produto.valor_produto){
troco = pagamento - produto.valor_produto;
printf("O seu troco e %f\n",troco);}
else printf("Introduza mais moedas\n");
}
return troco;
}
}
↧