"Christopher McDonald" chris.mcdonald@uwa.edu.au wrote:
"Jie Wei" 21022228@student.uwa.edu.au wrote:
Hi Sir
Experienced weird result for the lab 1 first task (coin change).
Did you make any progress in solving this problem, Jie?
Hi Professor
thanks for checking with me, as I'm a FIFO engineer, i just back to perth tonight.
here's the code for this refresh task. the rest of the tasks are all good, just this first one gave me a funny result.
thank you so much for your support.
#include <stdio.h>
#define C50 50
#define C20 20
#define C10 10
#define C5 5
#define C2 2
#define C1 1
#define MAX_VALUE 100
int main(void)
{
int value;
printf("Enter the purchase value in cents (1 to %d): ", MAX_VALUE);
scanf("%d", &value);
if(value < 1 || value > MAX_VALUE){
printf("Invalid value.\n");
return 1;
}
int change = MAX_VALUE - value;
printf("The change is %d cents.\n", change);
int n50 = 0, n20 = 0, n10 = 0, n5 = 0, n2 = 0, n1 = 0;
n50 = change / C50;
change %= C50;
n20 = change / C20;
change %= C20;
n10 = change / C10;
change %= C10;
n5 = change / C5;
change %= C5;
n2 = change / C2;
change %= C2;
n1 = change / C1;
change %= C1;
if(n50 > 0){
printf("%d x 50c.\n", n50);
}
if(n20 > 0){
printf("%d x 20c.\n", n20);
}
if(n10 > 0){
printf("%d x 10c.\n", n10);
}
if(n5 > 0){
printf("%d x 5c.\n", n5);
}
if(n2 > 0){
printf("%d x 2c.\n", n2);
}
if(n1 > 0){
printf("%d x 1c.\n", n1);
}
return 0;
}