// There is a bug in this program!! using System; class Buggy { int[] unitValues = { 10000, 5000, 2000, 1000, 500, 10,0, 25, 10, 5, 1 }; string unitName(int value) { if (value >= 100) return value/100 + " dollar note"; return value + " cent coin"; } void MakeChange(int Cost, int AmountOffered) { int change = AmountOffered - Cost; if (change == 0) { Console.WriteLine("No change required"); return; } Console.WriteLine("The change will be ..."); for (int i=0; i < unitValues.Length; i++) { int unit = unitValues[i]; int num = change/unit; string plural; if (num != 0) { if (num > 1) plural = "s"; else plural = ""; change -= num*unit; Console.WriteLine(" {0} {1}{2}", num, unitName(unit), plural); } } } void Go() { for (; ;) { Console.Write("Enter cost of item ==> "); double c = double.Parse(Console.ReadLine()); Console.Write("Enter amount offered ==> "); double a = double.Parse(Console.ReadLine()); MakeChange((int)(c*100), (int)(a*100)); } } static void Main() { new Buggy().Go(); } }