Corregir código de C++

Iniciado por Jose_00, 8 Abril 2015, 00:56 AM

0 Miembros y 1 Visitante están viendo este tema.

Jose_00

hola soy nuevo en este foro díganme si me olvido de algo :).
Este es el código que hice en C++, consta en dar una cierta cantidad de dinero y después fraccionarla en diferentes tipos de monedas que son 20,10,5,1. Y si no se puede fraccionar  mas, que el resultado de 0.
ejemplo:
entrada
Cantidad de dinero a fraccionar: 59
salida
Monedas de 20: 2
Monedas de 10: 1
Monedas de 5: 1
Monedas de 1: 4

Bueno, hasta ahí todo bien pero a la hora de poner cualquier numero al azar empiezo a tener problemas en los resultados, como por ejemplo: me salen números negativos, no sale la cifra correcta etc.

Me gustaría que me ayudaran a corregirlo por favor ya que soy nuevo en esto.
aquí les dejo el código que yo hice:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main(){

   int diez,dinero, veinte,s1,s2,s3,cinco,uno;
   
   cout<<"cantidad de dinero a fraccionar: "<<endl;
   cin>>dinero;
   
   veinte=dinero/20;
   cout<<"monedas de 20: "<<veinte<<endl;
   s1=dinero-(veinte*20);
   diez=s1/10;
   
   cout<<"monedas de 10: "<<diez<<endl;
   s2=s1-10;
   cinco=s2/5;
   cout<<"modedas de 5 : "<<cinco<<endl;
   s3=s2-5;
   uno=s3/1;
   
   cout<<"monedas de 1 : "<<uno<<endl;

        system("pause");
        return 0;

}


Gracias :)

tremolero

Hola jose_00

Primero el codigo lo tienes que meter en las etiquetas code/geshi, es decir, dejas marcado GeSHi, pulsas el boton insertar codigo, y el cursor se va automaticamente dentro para que empieces a escribir todo el codigo.

Segundo, el codigo te va bien en ese caso, porque al hacer las resta de las monedas de 10 y 5, lo haces mal, indicando 1 sola vez, de esa manera todo ejemplo que introduzcas que solo necesite 1 moneda de 10 y una de 5, te ira perfecto pero en el resto te daran mal.

Fijate en la operacion que haces en s1 y veras que no es la misma que en s2 y s3, tienes que hacer en s2 y s3 lo mismo que haces en s1.

Una vez eso este arreglado, deberia irte bien con cualquier cantidad.

Un saludo.