viernes, 10 de febrero de 2012

Algoritmo de las Monedas

Hoy os dejo el algoritmo típico de los Voraces, el problema del cambio de monedas. Espero que os resulte útil!


#include <stdio.h>
#include <stdlib.h>
float datos();
void calcular(float devolver,int cambio[15], float monedas[15]);
int main(int argc, char *argv[]){
    float monedas[] = {500, 200, 100, 50, 20, 10, 5, 2, 1, 0.50, 0.20, 0.10, 0.05, 0.02, 0.01};
    int cambio[]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    float devolver;
    printf("Introduce el importe que debemos devolver ");
    scanf("%f",&devolver);
    printf("\n %f",devolver);
    calcular(devolver, cambio, monedas);
    printf("\n");
    for(int i=0;i<15;i++)
            printf("\n Monedas de %.2f = %d ",monedas[i],cambio[i]);
    printf("\n");           
    system("PAUSE");
    return 1;
       
}
void calcular(float devolver, int cambio[15], float monedas[15]){
     int i=0;
     while(devolver>0){
           if(monedas[i]<=devolver){
               devolver-=monedas[i];
               cambio[i]++;                  
                       }
           else i++;
     }
}

No hay comentarios:

Publicar un comentario