Определить, через сколько месяцев цена покупки увеличится более чем вдвое - C (СИ)
Формулировка задачи:
Три года назад за покупку на базаре 1 кг картофеля, 1 л молока и одного десятка яиц уплачено А руб. С тех пор ежемесячно цена картошки увеличивалась на 30%, цена молока – на 40%, яиц – в два раза. Написать программу ежемесячного изменения стоимости покупки, определяющую, через сколько месяцев цена покупки увеличится более чем вдвое.
Решение задачи: «Определить, через сколько месяцев цена покупки увеличится более чем вдвое»
textual
Листинг программы
#include <stdio.h>
#define PERIOD 37
int main ( void )
{
float patatoesPrice = 1.5, milkPrice = 0.7, eggsPrice = 0.5;
unsigned char counter, months = 0;
unsigned char doublePricePatatoes = 0, doublePriceMilk = 0, doublePriceEggs = 0;
unsigned char firstSentinel = 0, secondSentinel = 0, thirdSentinel = 0;
printf("%s%22s%22s%26s\n","Month","Price of patatoes","Price of milk","Price of eggs");
puts("");
for ( counter = 1; counter <= PERIOD; ++counter) {
printf( "%-2d%25.2f%22.2f%26.2f", months++, patatoesPrice, milkPrice, eggsPrice);
puts("");
patatoesPrice *= 1.3;
milkPrice *= 1.4;
eggsPrice *= 2;
if ( patatoesPrice >= (1.5 * 2) && firstSentinel < 1){
doublePricePatatoes = months;
++firstSentinel;
}
if ( milkPrice >= (0.7 * 2) && secondSentinel < 1){
doublePriceMilk = months;
++secondSentinel;
}
if ( eggsPrice >= (0.5 * 2) && thirdSentinel < 1){
doublePriceEggs = months;
++thirdSentinel;
}
}
printf("%s%d%s\n","Patato price become double after ",doublePricePatatoes," months");
printf("%s%d%s\n","Milk price become double after ",doublePriceMilk," months");
printf("%s%d%s\n","Eggs price become double after ",doublePriceEggs," months");
return 0;
}
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h для использования функций ввода-вывода
- Задаем значение переменной PERIOD равное 37 (необходимо изменить на желаемое количество месяцев)
- Объявляем переменные:
- patatoesPrice (цена покупки картофеля),
- milkPrice (цена покупки молока),
- eggsPrice (цена покупки яиц),
- counter (счетчик для цикла),
- months (количество прошедших месяцев),
- doublePricePatatoes (количество месяцев, через которое цена покупки картофеля увеличится в два раза),
- doublePriceMilk (количество месяцев, через которое цена покупки молока увеличится в два раза),
- doublePriceEggs (количество месяцев, через которое цена покупки яиц увеличится в два раза),
- firstSentinel (первый индикатор),
- secondSentinel (второй индикатор),
- thirdSentinel (третий индикатор)
- Выводим таблицу с наименованиями и начальными ценами продуктов
- Запускаем цикл от 1 до PERIOD, увеличивая каждую переменную на единицу после каждой итерации
- В каждой итерации выводим текущие цены продуктов и обновляем значения переменных doublePricePatatoes, doublePriceMilk, doublePriceEggs, если выполняется условие
- После завершения цикла выводим количество месяцев, через которое цена покупки каждого продукта увеличится в два раза
- Возвращаем 0, чтобы указать, что программа успешно завершилась