#include<stdio.h>
#include<stdlib.h>
void Find(double s[],double m,int r[],int n)
{
while(m>=s[n-1])
{
m-=s[n-1];
r[n-1]++;
}
while(m>0)
{
for(int i=0;m>0&&i<n;i++)
{
if(m>=s[i]&&m<s[i+1])
{
m-=s[i];
r[i]++;
}
}
}
}
int main()
{
int n;
printf("输入币的种类:");
scanf("%d",&n);
double *s; //记录币值种类
s=(double*)malloc(n * sizeof(double));
int *r; //记录各个钞票的数目
r=(int*)malloc(n * sizeof(int));
for(int i=0;i<n;i++)
{
r[i]=0;
}
printf("请输入各种币值:");
for(int i=0;i<n;i++)
{
scanf("%lf",&s[i]);
}
double m;
printf("请输入需要找的零钱数:");
scanf("%lf",&m);
Find(s,m,r,n);
printf("找的零钱数:\n");
for(int i=0;i<n;i++)
{
printf("需要面值为%f的钞票%d张\n",s[i],r[i]);
}
free(s);
free(r);
return 0;
}