Листинг 2. Программа, в которой используется оператор получения остатка от деления нацело

/*change.c*/main(){int amount, twenties, tens, fives, ones, r20, r10;printf("Введите необходимую сумму: ");scanf("%d", &amount);twenties = amount / 20;r20 = amount % 20; /*r20 - остаток от деления на двадцать*/tens = r20 / 10;r10 = r20 % 10; /*r10 - остаток от деления на десять*/fives = r10 / 5;ones = r10 % 5;putchar('\n');printf("Для того чтобы дать %d \ долларов сдачи, используйте:", amount);printf("%d банкнот(ы) достоинством 20 долларов", twenties);printf("%d банкнот(ы) достоинством 10 долларов", tens);printf("%d банкнот(ы) достоинством 5 долларов", fives);printf("%d банкнот(ы) достоинством 1 доллар", ones);}

Если вы ввели, например, значение 57, то получите следующий результат:

Для того чтобы дать 57 долларов сдачи, используйте:2 банкнот(ы) достоинством 20 долларов1 банкнот(ы) достоинством 10 долларов1 банкнот(ы) достоинством 5 долларов2 банкнот(ы) достоинством 1 доллар

Рис. 2 иллюстрирует работу этой программы. Количество двадцатидолларовых банкнот рассчитывается с помощью инструкции twenties = amount/20. Так как и переменная amount, и переменная twenties относятся к типу int, результат деления окажется целым числом. Он показывает, сколько раз число 20 содержится в значении переменной amount. Для компьютера результат — это просто некая величина, которую следует занести в память. Для нас же значение переменной twenties представляет значимую информацию, так как сообщает, сколько надо взять банкнот достоинством 20 долларов, чтобы дать сдачу.


Рис. 2. Как работает программа, использующая оператор остатка от деления нацело

Теперь, когда мы знаем, что нужны две банкноты по 20 долларов, встает вопрос: как определить нужное количество десятидолларовых купюр? Вспомните, как поступают в таких случаях в реальной жизни. После того как мы отняли от общей суммы два раза по 20 долларов, надо взять сумму остатка и посмотреть, сколько банкнот по 10 долларов могло бы в нее войти. Программа поступает аналогичным образом. Для того чтобы определить размер остатка, используется оператор %. В инструкции r20 = amount % 20 переменной r20 присваивается значение, полученное в остатке после деления переменной amount на 20. Для нас это число означает сумму, оставшуюся после того, как из общей суммы вычли столько раз по 20, сколько это было возможно. Два раза по 20 долларов составляет сумму 40 долларов, вычитаем ее из общей суммы и получаем 17 долларов. Значение 17 присваивается переменной tens.

Та же процедура, которая описана для переменной twenties, повторяется для переменных tens и fives. Значение переменной ones равно остатку после деления на 5.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: