Return 0;. По принятому в Си соглашению, ветвь else всегда относится к ближайшему предшествующему ему незанятому if:

}

По принятому в Си соглашению, ветвь else всегда относится к ближайшему предшествующему ему незанятому if:

if (n>0)

if (m % n > 2)

m -= n;

else m += n;

else m %= n;

В данном случае ветвь else m += n относится к if (m % n > 2), а ветвь
else m %= n относится к if (n > 0).

При переходе с Паскаля на Си программисты часто допускают ошибки при формировании условия в операторе if, путая две операции:

= присваивания и

== сравнения:

if (a==b)

printf(“\nЭти величины равны между собой”);

else printf(“\nЭти величины не равны между собой”);

Это правильное сравнение значений двух переменных.

Перепишем это сравнение с ошибкой (компилятором не определяется):

if (a=b)

printf(“\nЭти величины равны между собой”);

else printf(“\nЭти величины не равны между собой”);

В этом случае сначала переменной a будет присвоено значение переменной b, а потом будет проверено, какое именно значение присвоено. Если это значение отлично от нуля (неложь), то выведется сообщение:

Эти величины равны между собой

Если это значение равно нулю (ложь) – то сообщение:

Эти величины не равны между собой

Хотя и в этом случае обе переменные будут иметь одинаковые значения.

 

Часто встречающиеся ошибки программирования:

1. Использование else безпервой ветви:

if (n > m)








Дата добавления: 2015-10-19; просмотров: 621;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.