Ayuda con problema de ejecución (Código Sencillo)
Publicado por Connor665 (7 intervenciones) el 09/11/2016 12:42:27
Buenas, es un ejercicio de clase(imagino que ya lo habréis visto por internet). El problema se encuentra en la ejecución final, no entiendo por qué me da las monedas que quiere en vez de dármelas por orden ya que las operaciones las hago en orden. Muchas Gracias :)
EJERCICIO:
Escriba un programa en Java que nos calcule el cambio que debe dar la caja de
un supermercado: Dado un precio y una cantidad de dinero, el programa nos dirá
cuántas monedas deben darse como cambio de tal forma que el número total de
monedas sea mínimo(AQUÍ ES DONDE DIGO QUE ESTÁ EL PROBLEMA, EN QUE NO SON LAS MONEDAS MÍNIMAS).
EJERCICIO:
Escriba un programa en Java que nos calcule el cambio que debe dar la caja de
un supermercado: Dado un precio y una cantidad de dinero, el programa nos dirá
cuántas monedas deben darse como cambio de tal forma que el número total de
monedas sea mínimo(AQUÍ ES DONDE DIGO QUE ESTÁ EL PROBLEMA, EN QUE NO SON LAS MONEDAS MÍNIMAS).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import java.util.Scanner;
public class Cambio
{
public static void main(String[]args)
{
int opt;
int mon1=0, mon2=0, mon5=0, mon10=0, mon20=0, mon50=0, mon100=0, mon200=0;
float centimosExtra=0, totalCentimos=0, cambio=0, dinero=0, precio=0, precio1=9.99f, precio2=14.99f, precio3=242.95f;
Scanner teclado=new Scanner(System.in);
System.out.println("¿Qué desea comprar?");
System.out.println("1.Ratón: " + precio1 + "€");
System.out.println("2.Teclado: " + precio2 + "€");
System.out.println("3.Monitor: " + precio3 + "€");
System.out.println("4.SALIR");
opt=teclado.nextInt();
switch(opt)
{
case 1:
precio=precio1;
System.out.println("Ratón: " + precio1 + "€");
break;
case 2:
precio=precio2;
System.out.println("Teclado: " + precio2 + "€");
break;
case 3:
precio=precio3;
System.out.println("Monitor: " + precio3 + "€");
break;
case 4:
System.exit(0);
break;
default:
System.out.println("Opción no válida...");
break;
}
while((dinero<precio) || (dinero<=0))
{
System.out.print("Efectúe su pago: ");
dinero=teclado.nextFloat();
if((dinero<precio) || (dinero<=0)) System.out.println("ERROR");
}
cambio=dinero-precio;
System.out.println("El cambio es: " + cambio);
totalCentimos=cambio*100;
mon200=(int)totalCentimos/200;
centimosExtra=totalCentimos-(mon200*200);
mon100=(int)centimosExtra/100;
centimosExtra=totalCentimos-(mon100*100);
mon50=(int)centimosExtra/50;
centimosExtra=totalCentimos-(mon50*50);
mon20=(int)centimosExtra/20;
centimosExtra=totalCentimos-(mon20*20);
mon10=(int)centimosExtra/10;
centimosExtra=totalCentimos-(mon10*10);
mon5=(int)centimosExtra/5;
centimosExtra=totalCentimos-(mon5*5);
mon2=(int)centimosExtra/2;
centimosExtra=totalCentimos-(mon2*2);
mon1=(int)centimosExtra/1;
System.out.println("Cambio en monedas:");
System.out.println("2€: " + mon200);
System.out.println("1€: " + mon100);
System.out.println("0.50€: " + mon50);
System.out.println("0.20€: " + mon20);
System.out.println("0.10€: " + mon10);
System.out.println("0.05€: " + mon5);
System.out.println("0.02€: " + mon2);
System.out.println("0.01€: " + mon1);
}
}
Valora esta pregunta
0