А++-++а ≠ 0 однозначно! выражение содержит два инкремента - сначала постфиксный, затем, после знака минус - префиксный. постфиксный инкремент выполняется после выполнения операции, а префиксный - до. поэтому сначала выполнится префиксный ++, который увеличит операнд "а", затем из прежнего значения a, стоящего слева от знака минус, вычтется "новое" значение "а", и затем уже постфиксный инкремент нарастит полученное значение.
valueva260860
01.11.2021
Пусть a = 5 для определённости. в данном выражении у нас есть оператор инкремента(увеличение на 1). посмотрим, что же получится в результате. в первом случае(a++) оператор инкремента постфиксный. это значит, что если он входит в состав сложного выражения, то сначала выполняются другая операция, а ++ выполняется в последнюю очередь. если же оператор инкремента префиксный, то для начала выполнится именно он. то есть, смотрите: 1)вначале не обращаем внимания на знак ++, в качестве уменьшаемого пойдёт само значение а.(смотрим вышеизложенное). 2)теперь определим значение вычитаемого. ну во-первых. именно сейчас выполняется a++ в его истинном виде, то есть, значение a становится равно 6. далее, у нас есть оператор ещё ++a. то есть, прежде чем вычитать, значение а текущее увеличивается на 1. то есть, значение а равно 6 + 1 = 7 ну и теперь выполняем вычитание, 5 - 7 = -2 то есть, нуля тут не получится никак, это частая ошибка. выходит, что второй операнд на 2 больше первого, поэтому 0 не выйдет.
swetlanafatinia7323
01.11.2021
Const n=10; var a: array[1..n+1] of integer; k,i: integer; b: boolean; begin randomize; for i: =1 to n do begin a[i]: =random(21)-10; write(a[i]: 4); end; writeln; write('введите число: '); readln(k); b: =false; for i: =1 to n do if a[i]=k then b: =true; if not b then begin for i: =n+1 downto n div 2 + 1 do a[i]: =a[i-1]; a[n div 2]: =k; for i: =1 to n+1 do write(a[i]: 4); writeln; end else writeln('массив не изменился'); end. пример: 6 10 -5 -3 -9 -8 -3 3 -9 7 введите число: 4 6 10 -5 -3 4 -9 -8 -3 3 -9 7
gusrva3001
01.11.2021
Const n=4; m=3; var a: array[1..n,1..m] of integer; i,j,k: integer; begin k: =17; for j: =1 to m do begin if j mod 2 < > 0 then for i: =1 to n do begin k: =k-1; a[i,j]: =k; end else for i: =n downto 1 do begin k: =k-1; a[i,j]: =k; end; end; for i: =1 to n do begin for j: =1 to m do write(a[i,j]: 4); writeln; end; end. результат: 16 9 8 15 10 7 14 11 6 13 12 5
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Решите и объясните почему c c++ a++-++a чему равно? ноль ответ не совсем правильный..