![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Множественный выбор else if
Жизнь нередко ставит нас перед выбором из более чем двух вариантов. Чтобы учесть этот факт, структуру if else можно расширить посредством конструкции else if. Давайте рассмотрим конкретный пример. Коммунальные предприятия часто выставляют счета за электроэнергию в зависимости от потребленного объема. Ниже приведены тарифы на потребленную электроэнергию в одной из таких компаний, основанные на киловатт-часах (кВт/ч). Первые 360 кВт/ч: $0.13230 за 1 кВт/ч Следующие 108 кВт/ч $0.15040 за 1 кВт/ч Следующие 252 кВт/ч $0.30025 за 1 кВт/ч Свыше 720 кВт/ч $0.34025 за 1 кВт/ч Если вы намерены вести учет расхода электроэнергии, то имеет смысл написать программу для вычисления стоимости потребленной электроэнергии. Программа в листинге 7.4 является первым шагом в этом направлении. Листинг 7.4. Программа electric.с // electric.c -- подсчитывает сумму для счета за электроэнергию #include < stdio.h> #define RATE1 0.13230 // тариф за первые 360 кВт/ч #define RATE2 0.15040 // тариф за следующие 108 кВт/ч #define RATE3 0.30025 // тариф за следующие 252 кВт/ч #define RATE4 0.34025 // тариф, когда расход превышает 720 кВт/ч #define BREAK1 360.0 // первая точка разрыва тарифов #define BREAK2 468.0 // вторая точка разрыва тарифов #define BREAK3 720.0 // третья точка разрыва тарифов #define BASE1 (RATE1 * BREAK1) // стоимость 360 кВт/ч #define BASE2 (BASE1 + (RATE2 * (BREAK2 - BREAK1))) // стоимость 468 кВт/ч #define BASE3 (BASE1 + BASE2 + (RATE3 *(BREAK3 - BREAK2))) // стоимость 720 кВт/ч int main(void) { double kwh; // израсходованные киловатт-часы double bill; // сумма к оплате
printf(" Введите объем израсходованной электроэнергии в кВт/ч.\n"); scanf(" %lf", & kwh); // %lf для типа double if (kwh < = BREAK1) bill = RATE1 * kwh; else if (kwh < = BREAK2) // в промежутке от 360 до 468 Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение bill = BASE1 + (RATE2 * (kwh - BREAK1)); else if (kwh < = BREAK3) // в промежутке от 468 до 720 bill = BASE2 + (RATE3 * (kwh - BREAK2)); else // превышает 720 bill = BASE3 + (RATE4 * (kwh - BREAK3)); printf(" Сумма к оплате за %.1f kwh составляет $%1.2f.\n", kwh, bill); return 0; } Вот пример вывода: Введите объем израсходованной электроэнергии в кВт/ч. Сумма к оплате за 580.0 кВт/ч составляет $97.50. В программе из листинга 7.4 для представления тарифов применяются символические константы, которые для удобства собраны в одном месте. Если компания-производитель электроэнергии меняет свои тарифы (это возможно), наличие их в одном месте упрощает модификацию. В листинге также используются символические константы для точек разрыва. Они тоже могут изменяться. Константы BASE1 и BASE2 выражены через тарифы и точки разрыва. Таким образом, если тарифы и точки разрыва меняются, значения BASE1 и BASE2 обновляются автоматически. Вы можете вспомнить, что препроцессор не выполняет вычислений. Там, где в программе появляется константа BASE1, она заменяется выражением 0.13230 * 360. 0. Компилятор вычислит числовое значение этого выражения (47.628) и в окончательном коде программы будет присутствовать число 47.628, а не выражение.
|