Определить, через сколько месяцев цена покупки увеличится более чем вдвое - 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;
}

Объяснение кода листинга программы

  1. Включаем заголовочный файл stdio.h для использования функций ввода-вывода
  2. Задаем значение переменной PERIOD равное 37 (необходимо изменить на желаемое количество месяцев)
  3. Объявляем переменные:
    • patatoesPrice (цена покупки картофеля),
    • milkPrice (цена покупки молока),
    • eggsPrice (цена покупки яиц),
    • counter (счетчик для цикла),
    • months (количество прошедших месяцев),
    • doublePricePatatoes (количество месяцев, через которое цена покупки картофеля увеличится в два раза),
    • doublePriceMilk (количество месяцев, через которое цена покупки молока увеличится в два раза),
    • doublePriceEggs (количество месяцев, через которое цена покупки яиц увеличится в два раза),
    • firstSentinel (первый индикатор),
    • secondSentinel (второй индикатор),
    • thirdSentinel (третий индикатор)
  4. Выводим таблицу с наименованиями и начальными ценами продуктов
  5. Запускаем цикл от 1 до PERIOD, увеличивая каждую переменную на единицу после каждой итерации
  6. В каждой итерации выводим текущие цены продуктов и обновляем значения переменных doublePricePatatoes, doublePriceMilk, doublePriceEggs, если выполняется условие
  7. После завершения цикла выводим количество месяцев, через которое цена покупки каждого продукта увеличится в два раза
  8. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы