CitarCreo que el planteamiento es quitar todas las posbles monedas de 0.249, a lo que resta las de 0.099 y así sucesivamente. ¿Por qué esos valores y no 0.25 y 0.10?. Por los dichosos redondeos que hacen que cantidad sea "ligeramente" inferior a partir del primer cálculo. Con este planteamiento resulta:
Código (cpp) [Seleccionar]
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
float cantidad;
int e = 0,f = 0,g = 0,h = 0;
cout << "escribe la cantidad: " ;
cin >> cantidad;
while(cantidad >= 0.249)
{
e++;cantidad -= 0.25;
}
cout << "de 0.25 = " << (e) << endl;
while(cantidad >= 0.099)
{
f++;cantidad -= 0.1;
}
cout << "de 0.10 = " << (f) << endl;
while(cantidad >= 0.049)
{
g++;cantidad -= 0.05;
}
cout << "de 0.05 = " << (g) << endl;
while(cantidad >0)
{
h++;cantidad -= 0.01;
}
cout << "de 0.01 = " << (h) << endl;
return 0;
}
Saludos!.