Есть ответ 👍

C++ почему не работает выражение a==0 ? break: continue; (внутри цикла)

187
335
Посмотреть ответы 2

Ответы на вопрос:


Тернарный оператор должен возвращать значение (или ссылку на переменную), которое потом можно использовать. например, если в целочисленной переменной a записано число -3, то используя такой синтаксис: int absa = a > = 0 ? a : -a; можно присвоить переменной absa значение |-3| = 3. выражения break, continue (и, например, return) выполнением программы, показывая, какую инструкцию выполнять следующей, и не возвращают никакого значения (даже void). поэтому при попытке использовать такие выражения в качестве аргументов тернарного оператора, , что оба аргумента вернут какое-то значение, возникает ошибка компиляции. если хочется использовать тернарный оператор для выхода из цикла (но зачем? ) можно выбрасывать исключение, которое потом обрабатывать, например, так: try {     int a = 5;     while(true) {         a == 0 ? throw "a equals 0" : (void) 0;         a--;     } } catch ( char const*  s) {     if (s ! = "a equals 0") throw s; };
zhenya4534
4,8(24 оценок)

Найдем кол-во символов в сообщении: k=32*40*8=10240 найдем информационный объем одного символа: 10 кб переводим в биты: 10*1024*8=81920, тогда информационный объем одного символа (i) = 81920/10240 = 8, тогда кол-во символов в алфавите (n): n=2^i (2 в степени i) = 2^8 = 256. ответ: в алфавите 256 символов

Популярно: Информатика