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