Design and Analysis of Algorithms - 9
Implement Program for “Making Change” using Greedy
design technique.
Code:
#include<stdio.h>
#include<stdlib.h>
void change(int *denom,int nDenom,int
change);
void main()
{
int coin[10];
int i,n,amount=0;
printf("Enter amount:");
scanf("%d",&amount);
printf("Enter number of coins for exchange:");
scanf("%d",&n);
printf("\nEnter value of coins:\n");
for(i=0;i<n;i++)
{
scanf("%d",&coin[i]);
}
change(coin,n,amount);
}
void change(int *denom,int nDenom,int
change)
{
int a,i=0,j,k,sum,ncoin=0,*count;
count=(int*)malloc(nDenom*(sizeof(int)));
sum=change;
for(i=0;i<nDenom;i++)
{
count[i]=0;
}
for (k = 0; k <nDenom; ++k)
{
for (j = k + 1; j <nDenom; ++j)
{
if (denom[k] <denom[j])
{
a = denom[k];
denom[k] = denom[j];
denom[j] = a;
}
}
}
i=0;
while(i<nDenom)
{
if(denom[i]<=sum)
{
sum=sum-denom[i];
ncoin++;
count[i]++;
}
else
{
i++;
}
}
if(sum!=0)
printf(" change not possible");
else
{
printf("\nNumber coins needed
are: %d\n",ncoin);
for(i=0;i<nDenom;i++)
{
if(count[i]!=0)
printf("Coin of %d is used %d
times\n",denom[i],count[i]);
}
}
}
Output:
Conclusion:
In this Practical, I understand to Implement
program for “Making Change” using Greedy design technique.
Comments
Post a Comment