Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Си. Я правильно ответил?

Border Lands Просветленный (21461), закрыт 4 года назад
Задание: найти ошибки.

if(number <= largest)
largest == number;

Ответ: в операторе структуры if вместо операции присваивания написана операция отношения. Что в данном случае является синтаксической ошибкой.

Вопрос в том - правильно ли я сделал, что ответил именно "в операторе", а не "в теле"? Поскольку "тело" в Си всегда состоит из начальной и завершающей скобки.
Лучший ответ
Johnny Mnemonic Гуру (3300) 4 года назад
Синтаксических ошибок нет. Это скомпилируется. А вот если по смыслу, то да, напрашивается присваивание.
Border LandsПросветленный (21461) 4 года назад
А почему здесь нет синтаксической ошибки? Что данный оператор значит? Например, a == b

#include

main()
{
int a=0, b=1;

if(a <= b)
{
a==b;

printf("Hi\n");
}

return 0;
}
Johnny Mnemonic Гуру (3300) Потому что синтаксису языка это никак не противоречит. Данный оператор возвращает true, если a и b равны, и false в противном случае.
Остальные ответы
Иван Сигаев Искусственный Интеллект (150114) 4 года назад
Фигурными скобками обрамляют составной оператор, а не "тело" оператора :)
Παν μέτρον άριστονМыслитель (9576) 4 года назад
Это вообще не оператор. Просто переводчики (которые подставные лошади просвещения=) не могут нормально переводить книги по программированию. Из-за чего новичкам приходится тяжко без знающего наставника.
Иван Сигаев Искусственный Интеллект (150114) что конкретно не оператор? if, operator<= или operator== ?
Παν μέτρον άριστονМыслитель (9576) 4 года назад
Пушкин написал, что «переводчики – подставные лошади просвещения, через них скрываются великие тайны».
Ярослав Искусственный Интеллект (107837) 4 года назад
Общая мысль верна, но написано конечно бредово... там никаких "операторов структуры" - на самом деле, выражение/инструкция (statement) после условия (expression) в операторе if и называется его телом (хотя правильнее называть это телом выражения if, statement body). Хз с чего ты взял что "тело всегда состоит из скобок", это чистая ахинея.
В русскоязычной литературе, expression иногда называют выражением условия [оператора], а statement - выражением оператора, что вносит путаницу. Терминология if (условие) <выражение|блок> воспринимается гораздо яснее.
И не "операция отношения", а оператор равенства (equality operator) все-таки.
Παν μέτρον άριστονМыслитель (9576) 4 года назад
В операторы отношения (== != < <= > >=) входит оператор равенства и операторы неравенства
Ярослав Искусственный Интеллект (107837) Ты понимаешь о чем идет речь в последнем предложении ответа (разницу между словами "операция" и "оператор")?
Похожие вопросы