EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
C/C++/C# HTML Java JavaScript Linux PHP Python Swift
 Recursos > Código fuente > Capítulo 13 > Ejercicio Propuesto 13.23
Desglose de moneda
 Solución 1
#include <stdio.h>

int main()
{
   int b500, b200, b100, b50, b20, b10, b5, euros, m2, m1;

   printf( "\n   Introduzca cantidad entera (euros): " );
   scanf( "%d", &euros );

   if ( euros > 0 )
   {
      /* Billetes de 500 */
      if ( euros >= 500 )
      {
         b500 = euros / 500;
         euros %= 500;
      }
      else
         b500 = 0;

      /* Billetes de 200 */
      if ( euros >= 200 )
      {
         b200 = euros / 200;
         euros %= 200;
      }
      else
         b200 = 0;

      /* Billetes de 100 */
      if ( euros >= 100 )
      {
         b100 = euros / 100;
         euros %= 100;
      }
      else
         b100 = 0;

      /* Billetes de 50 */
      if ( euros >= 50 )
      {
         b50 = euros / 50;
         euros %= 50;
      }
      else
         b50 = 0;

      /* Billetes de 20 */
      if ( euros >= 20 )
      {
         b20 = euros / 20;
         euros %= 20;
      }
      else
         b20 = 0;

      /* Billetes de 10 */
      if ( euros >= 10 )
      {
         b10 = euros / 10;
         euros %= 10;
      }
      else
         b10 = 0;

      /* Billetes de 5 */
      if ( euros >= 5 )
      {
         b5 = euros / 5;
         euros %= 5;
      }
      else
         b5 = 0;

      /* Monedas de 2 */
      if ( euros >= 2 )
      {
         m2 = euros / 2;
         euros %= 2;
      }
      else
         m2 = 0;

      /* Monedas de 1 */
         m1 = euros;

      printf( "   %d billete(s) de 500", b500 );
      printf( "\n   %d billete(s) de 200", b200 );
      printf( "\n   %d billete(s) de 100", b100 );
      printf( "\n   %d billete(s) de 50", b50 );
      printf( "\n   %d billete(s) de 20", b20 );
      printf( "\n   %d billete(s) de 10", b10 );
      printf( "\n   %d billete(s) de 5", b5 );
      printf( "\n   %d moneda(s) de 2", m2 );
      printf( "\n   %d moneda(s) de 1", m1 );
   }
   else
      printf( "   ERROR: Cantidad incorrecta, debe ser mayor que cero." );

   return 0;
}
 Solución 2
#include <stdio.h>

int main()
{
   int b500, b200, b100, b50, b20, b10, b5, contador, descontar,
       euros, m2, m1,
resultado;

   printf( "\n   Introduzca cantidad entera (euros): " );
   scanf( "%d", &euros );

   if ( euros > 0 )
   {
      contador = 1;
      do
      {
         switch ( contador )
         {
           case 1: descontar = 500;
                   break;
           case 2: descontar = 200;
                   break;
           case 3: descontar = 100;
                   break;
           case 4: descontar = 50;
                   break;
           case 5: descontar = 20;
                   break;
           case 6: descontar = 10;
                   break;
           case 7: descontar = 5;
                   break;
           case 8: descontar = 2;
         }

         if ( euros >= descontar )
         {
            resultado = euros / descontar;
            euros %= descontar;
         }
         else
            resultado = 0;

         switch ( contador )
         {
           case 1: b500 = resultado;
                   break;
           case 2: b200 = resultado;
                   break;
           case 3: b100 = resultado;
                   break;
           case 4: b50 = resultado;
                   break;
           case 5: b20 = resultado;
                   break;
           case 6: b10 = resultado;
                   break;
           case 7: b5 = resultado;
                   break;
           case 8: m2 = resultado;
         }

         contador++;

      } while ( contador <= 8 );

      m1 = euros;

      printf( "   %d billete(s) de 500", b500 );
      printf( "\n   %d billete(s) de 200", b200 );
      printf( "\n   %d billete(s) de 100", b100 );
      printf( "\n   %d billete(s) de 50", b50 );
      printf( "\n   %d billete(s) de 20", b20 );
      printf( "\n   %d billete(s) de 10", b10 );
      printf( "\n   %d billete(s) de 5", b5 );
      printf( "\n   %d moneda(s) de 2", m2 );
      printf( "\n   %d moneda(s) de 1", m1 );
   }
   else
      printf( "   ERROR: Cantidad incorrecta, debe ser mayor que cero." );

   return 0;
}
 Ficheros con extensión (.c)
ejer_pro_13_23_1.c
ejer_pro_13_23_2.c