Листинг 1. Программа расчета стоимости товаров с учетом налога на предметы роскоши

/*luxury1.c*/main() { float cost, tax, luxury, total; luxury = 0.0; printf("Введите цену товара: "); scanf("%f", &cost); tax = cost * 0.06; if (cost > 40000.00) luxury = cost * 0.005; total = cost + tax + luxury; printf("Стоимость единицы товара с учетом налогов составляет %.2f", total); }

В этих инструкциях говорится: «Если значение переменной cost больше 40000, то переменной luxury присваивается значение, равное значению cost, умноженному на 0.5 процента». Последние две строки инструкций в программе выполняются в любом случае, независимо от того, присутствует налог на предметы роскоши или нет, так как эти строки расположены после точки с запятой, завершающей инструкцию if.

Заметьте, что в начале программы переменной luxury присваивается начальное значение, равное 0, в отличие, например, от переменной tax. Причина в том, что переменной tax в любом случае будет присвоено значение, полученное в результате выполнения математических операций tax = cost * 0.06, а расчет и присваивание значения переменной luxury осуществляется только в том случае, если стоимость превышает 40тысяч долларов. Если условие не соблюдается, расчет не производится. В этом случае, если бы переменная luxury не была инициализирована, в выражение расчета общей стоимости было бы подставлено случайное значение, хранящееся в памяти. Поэтому представляется в высшей степени разумным, если вы всегда будете присваивать начальное значение переменным, которые используются в инструкции if, так же, как это делается при использовании счетчика и аккумулятора.

Используя операторы отношения больше и меньше, удостоверьтесь, что с их помощью вы составили именно те условия, которые необходимы. В приведенном примере налог на предметы роскоши добавляется только в том случае, если цена товара хотя бы на один цент превышает 40 тысяч долларов, то есть если вещь стоит 40 тысяч долларов 1 цент и больше. Если стоимость товара составляет ровно 40 тысяч долларов, налог на предметы роскоши не добавляется. Если бы налогом облагались товары, стоимостью 40 тысяч долларов и выше, следовало бы указать условие:

if (cost>= 40000.00)

Разница между операторами больше и больше или равно либо меньше и меньше или равно с виду кажется незначительной, но она может весьма существенно сказаться на результатах, получаемых от программы.


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



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