Я должен решить это упражнение в c#
Проблема в том, что программа не изменяет значение счетчика. Я уверен, что сделал логическую ошибку, но не могу ее найти
Описание упражнения
Напишите программу, которая будет рассчитывать изменение, которое будет выдано автоматом для розлива напитков. Все предметы стоят менее одного фунта, и один фунт - это самое высокое значение, которое можно вставить в машину. Программа должна запросить у пользователя стоимость товара и введенную сумму (в пенсах). Введенная сумма не должна превышать 100, а стоимость предмета не должна превышать 99. Необходимо проверить, что каждый вход находится в правильном диапазоне и является действительным целым числом. Монеты, которые можно отдать в обмен, - это 50p, 20p, 10p, 5p, 2p и 1p. Ваша программа должна использовать минимальное количество каждой монеты, чтобы произвести изменение. Программа должна отобразить изменение, которое будет дано в виде:
Количество монет 50p:… Количество монет 20p… Количество монет 10p… Количество монет 5p… Число монет 2p… Количество монет 1p составляет…
Например, если пользователь вводит 100 для заданной суммы и 42 для стоимости предмета, программа отобразит (поскольку изменение составляет 58p):
Количество монет 50p равно 1 Количество монет 20p равно 0 Количество монет 10p равно 0 Количество монет 5p равно 1 Количество монет 2p равно 1 Количество монет 1p равно 1
Мой код
static void Main(string[] args)
{
int price;
int paid;
int remainder;
int i, a, b, c, d, f, g;
int p50 = 0;
int p20 = 0;
int p10 = 0;
int p5 = 0;
int p2 = 0;
int p1 = 0;
Console.Write("Price: ");
price = Int32.Parse(Console.ReadLine());
Console.Write("Paid: ");
paid = Int32.Parse(Console.ReadLine());
remainder = price - paid;
while(remainder >= 50)
{
p50++;
a = remainder / 50;
remainder = remainder % 50;
}
while (remainder >= 20)
{
p20++;
b = remainder / 20;
remainder = remainder % 20;
}
while (remainder >= 10)
{
p10++;
c = remainder / 10;
remainder = remainder % 10;
}
while (remainder >= 5)
{
p5++;
d = remainder / 5;
remainder = remainder % 5;
}
while (remainder >= 2)
{
p2++;
f = remainder / 2;
remainder = remainder % 2;
}
while (remainder >= 1)
{
p1++;
g = remainder / 1;
remainder = remainder % 1;
}
Console.WriteLine("Number of 50p coins is " + p50);
Console.WriteLine("Number of 20p coins is " + p20);
Console.WriteLine("Number of 10p coins is " + p10);
Console.WriteLine("Number of 5p coins is " + p5);
Console.WriteLine("Number of 2p coins is " + p2);
Console.WriteLine("Number of 1p coins is " + p1);
Console.ReadKey();
}
Окно вывода введите описание изображения здесь
введите описание изображения здесь