£2, £1, 50p, 20p, 10p, 5p, 2p, 1p coins.
I tried to use an array but that doesn't seem to be working as the output is wayyyy messed up. Anyone got any ideas? It's C#.
using System; namespace Calculator { class Program { public static void Main(string[] args) { //Declare Variables. string value, myChoice; int pence; int[] change = new int [8] {200, 100, 50, 20, 10, 5, 2, 1}; do { //Collect input from user. Console.WriteLine("Please input the amount in pence that you want to have calculated:\n"); value = Console.ReadLine(); pence = Convert.ToInt32(value); Console.Clear(); Console.WriteLine("You entered {0}", pence); //The math. do { if(pence >= 200) { change[0] = pence / 200; pence = pence % 200; } else if(pence >= 100) { change[1] = pence / 100; pence = pence % 100; } else if(pence >= 50) { change[2] = pence / 50; pence = pence % 50; } else if(pence >= 20) { change[3] = pence / 20; pence = pence % 20; } else if(pence >= 10) { change[4] = pence / 10; pence = pence % 10; } else if(pence >= 5) { change[5] = pence / 5; pence = pence % 5; } else if(pence >= 2) { change[6] = pence / 2; pence = pence % 2; } else if(pence >= 1) { change[7] = pence / 1; pence = pence % 1; } } while (pence > 0); Console.WriteLine("The minimum amount of change possible for that sum of money"); Console.WriteLine("would be the following combination of coins: \n"); //Output end values only if greater than 0. if(change[0] > 0) { Console.WriteLine("{0} x £2 coins.", change[0]); } if(change[1] > 0) { Console.WriteLine("{0} x £1 coins.", change[1]); } if(change[2] > 0) { Console.WriteLine("{0} x 50p coins.", change[2]); } if(change[3] > 0) { Console.WriteLine("{0} x 20p coins.", change[3]); } if(change[4] > 0) { Console.WriteLine("{0} x 10p coins.", change[4]); } if(change[5] > 0) { Console.WriteLine("{0} x 5p coins.", change[5]); } if(change[6] > 0) { Console.WriteLine("{0} x 2p coins.", change[6]); } if(change[7] >0) { Console.WriteLine("{0} x 1p coins.", change[7]); } Console.ReadLine(); Console.Clear(); Console.WriteLine("Would you like to quit?\n(Y/N)\n"); myChoice = Console.ReadLine(); //Does user want to quit? switch(myChoice) { case "Y": case "y": Console.WriteLine("\nProgram will close."); Console.ReadLine(); break; case "N": case "n": Console.WriteLine("\nProgram will restart."); Console.ReadLine(); Console.Clear(); break; } } while (myChoice != "Y" && myChoice != "y"); } } }
EDIT:
If it helps, here is the working program, before I tried to implement the array.
using System; namespace Calculator { class Program { public static void Main(string[] args) { //Declare Variables. string value, myChoice; int change, pound2 = 0, pound1 = 0, p50 = 0, p20 = 0, p10 = 0, p5 = 0, p2 = 0, p1 = 0; do { //Collect input from user. Console.WriteLine("Please input the amount in pence that you want to have calculated:\n"); value = Console.ReadLine(); change = Convert.ToInt32(value); Console.Clear(); Console.WriteLine("You entered {0}", change); //The math. do { if(change >= 200) { pound2 = change / 200; change = change % 200; } else if(change >= 100) { pound1 = change / 100; change = change % 100; } else if(change >= 50) { p50 = change / 50; change = change % 50; } else if(change >= 20) { p20 = change / 20; change = change % 20; } else if(change >= 10) { p10 = change / 10; change = change % 10; } else if(change >= 5) { p5 = change / 5; change = change % 5; } else if(change >= 2) { p2 = change / 2; change = change % 2; } else if(change >= 1) { p1 = change / 1; change = change % 1; } } while (change > 0); Console.WriteLine("The minimum amount of change possible for that sum of money"); Console.WriteLine("would be the following combination of coins: \n"); //Output end values only if greater than 0. if(pound2 > 0) { Console.WriteLine("{0} x £2 coins.", pound2); } if(pound1 > 0) { Console.WriteLine("{0} x £1 coins.", pound1); } if(p50 > 0) { Console.WriteLine("{0} x 50p coins.", p50); } if(p20 > 0) { Console.WriteLine("{0} x 20p coins.", p20); } if(p10 > 0) { Console.WriteLine("{0} x 10p coins.", p10); } if(p5 > 0) { Console.WriteLine("{0} x 5p coins.", p5); } if(p2 > 0) { Console.WriteLine("{0} x 2p coins.", p2); } if(p1 >0) { Console.WriteLine("{0} x 1p coins.", p1); } Console.ReadLine(); Console.Clear(); Console.WriteLine("Would you like to quit?\n(Y/N)\n"); myChoice = Console.ReadLine(); //Does user want to quit? switch(myChoice) { case "Y": case "y": Console.WriteLine("\nProgram will close."); Console.ReadLine(); break; case "N": case "n": Console.WriteLine("\nProgram will restart."); Console.ReadLine(); Console.Clear(); break; } } while (myChoice != "Y" && myChoice != "y"); } } }
Edited by W!, 01 March 2010 - 18:18.