Требуется определить, хватит ли имеющейся суммы денег на покупку линолеума - C (СИ)
Формулировка задачи:
Задача нужна с комментами
Для прямоугольной комнаты размером W x H метров нужно закупить линолеум. В магазине линолеум продают рулонами; вам известно количество квадратных метров линолеума в одном рулоне и цена рулона.
Требуется определить, хватит ли имеющейся суммы денег на покупку линолеума.
Линолеум также может быть закуплен у иностранного поставщика, поэтому требуется узнать его стоимость в иностранной валюте, курс которой по отношению к рублю известен.
Входные данные
Первая строка содержит два целых числа W и H (1 <= W, H <= 1000) — соответственно длину и ширину комнаты в метрах.
Вторая строка содержит два целых числа K и P (1 <= K, P <= 1000) — соответственно количество квадратных метров линолеума в одном рулоне и цену одного рулона в рублях.
Третья строка содержит одно целое число M (1 <= M <= 10^6) — количество имеющихся денег в рублях.
Четвёртая строка содержит одно вещественное число T (0 < T <= 10) — стоимость рубля в иностранной валюте.
Выходные данные
В первой строке выведите два целых числа — количество рулонов линолеума, которое потребуется приобрести, и общую стоимость линолеума в рублях.
Во второй строке выведите "YES" (без кавычек), если имеющихся денег хватит на покупку линолеума, иначе выведите "NO" (без кавычек).
В третьей строке выведите одно вещественное число с четырьмя знаками после запятой — общую стоимость линолеума в иностранной валюте
Решение задачи: «Требуется определить, хватит ли имеющейся суммы денег на покупку линолеума»
textual
Листинг программы
#include <stdio.h> int main ( void ) { // Декларация переменных // имеющаяся сумма на покупку линолиума unsigned int moneyAmount; // соответственно цена и размер одного рулона линолеума unsigned short linoleumPrice, linoleumQuantity; // ширина, длина и площадь комнаты unsigned short roomWidth, roomLength, roomArea; // oneMeter - стоимость одного метра линолеума unsigned short oneMeter, linoleumRolls = 0; // roll - счетчик кол-ва необходимых рулонов unsigned char roll = 0, counter; // стоимость рубля в иностранной валюте double moneyCost; // вводим все необходимые данные для вычислений puts("Enter width and length of your room"); scanf("%hu%hu", &roomWidth, &roomLength); puts("Enter size (in square meter) and price of a roll of linoleum"); scanf("%hu%hu", &linoleumQuantity, &linoleumPrice); puts("Enter your financial aivalability"); scanf("%u", &moneyAmount); puts("Enter corrent cost of foreign money"); scanf("%lf", &moneyCost); // находим площадь комнаты roomArea = roomWidth * roomLength; // стоимость одного метра линолеума (не обязательно) oneMeter = linoleumPrice / linoleumQuantity; // внутри цикла определяем необходимое кол-во рулонов линолеума for (counter = 0; counter < roomArea; ++counter){ if (linoleumRolls < roomArea){ ++roll; linoleumRolls += linoleumQuantity; } else break; } // выводим кво необходимых рулонов и их стоимость и (не обязательно) реальную // стоимость для покрытия линолеумом комнаты printf("%-2hu%4hu%7hu\n", roll, roll * linoleumPrice, oneMeter * roomArea); // хватит или нет имеющихся денег (roll * linoleumPrice <= moneyAmount) ? puts("YES") : puts("NO"); // стоимость необходимого к-ва рулонов в иностранной валюте printf("%.4f\n", ((double)roll * (double)linoleumPrice) * moneyCost); }
Объяснение кода листинга программы
- Объявление переменных:
- moneyAmount (имеющаяся сумма на покупку линолеума)
- linoleumPrice (цена и размер одного рулона линолеума)
- linoleumQuantity (количество рулонов линолеума)
- roomWidth (ширина комнаты)
- roomLength (длина комнаты)
- roomArea (площадь комнаты)
- oneMeter (стоимость одного метра линолеума)
- linoleumRolls (счетчик кол-ва необходимых рулонов)
- roll (счетчик кол-ва необходимых рулонов)
- counter (счетчик кол-ва циклов)
- moneyCost (стоимость рубля в иностранной валюте)
- Ввод данных:
- roomWidth и roomLength (ширина и длина комнаты)
- linoleumQuantity и linoleumPrice (размер и цена рулона линолеума)
- moneyAmount (имеющаяся сумма денег)
- moneyCost (стоимость рубля в иностранной валюте)
- Вычисления:
- roomArea (площадь комнаты)
- oneMeter (стоимость одного метра линолеума)
- linoleumRolls (кол-во рулонов линолеума)
- roll (кол-во рулонов линолеума)
- Вывод данных:
- кво необходимых рулонов и их стоимость
- реальная стоимость для покрытия линолеумом комнаты
- ответ на вопрос
хватит или нет имеющихся денег
- стоимость необходимого к-ва рулонов в иностранной валюте
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д