Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Vending machine

$
0
0
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; } }

Viewing all articles
Browse latest Browse all 11336

Trending Articles