opscosmiclatte7868
?>

Решите и объясните почему c c++ a++-++a чему равно? ноль ответ не совсем правильный..

Информатика

Ответы

ИгоревичАндрей
А++-++а ≠ 0 однозначно! выражение содержит два инкремента - сначала постфиксный, затем, после знака минус - префиксный. постфиксный инкремент выполняется после выполнения операции, а префиксный - до. поэтому сначала выполнится префиксный ++, который увеличит операнд "а", затем из прежнего значения a, стоящего слева от знака минус, вычтется "новое" значение "а", и затем уже постфиксный инкремент нарастит полученное значение.
valueva260860
Пусть a = 5 для определённости. в данном выражении у нас есть оператор инкремента(увеличение на 1). посмотрим, что же получится в результате. в первом случае(a++) оператор инкремента постфиксный. это значит, что если он входит в состав сложного выражения, то сначала выполняются другая операция, а ++ выполняется в последнюю очередь. если же оператор инкремента префиксный, то для начала выполнится именно он. то есть, смотрите: 1)вначале не обращаем внимания на знак ++, в качестве уменьшаемого пойдёт само значение а.(смотрим вышеизложенное). 2)теперь определим значение вычитаемого. ну во-первых. именно сейчас выполняется a++ в его истинном виде, то есть, значение a становится равно 6. далее, у нас есть оператор ещё ++a. то есть, прежде чем вычитать, значение а текущее увеличивается на 1. то есть, значение а равно 6 + 1 = 7 ну и теперь выполняем вычитание, 5 - 7 = -2 то есть, нуля тут не получится никак, это частая ошибка. выходит, что второй операнд на 2 больше первого, поэтому 0 не выйдет.
swetlanafatinia7323
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
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 чему равно? ноль ответ не совсем правильный..
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

PetrovnaTsukanov
vladimirkirv
Fateevsa9
galkar
Golubitskaya378
roma8
bessalaias
ashybasaida-33
Fedorova_79166180822
nzaripova313
zharovaleks
marinadetsad
dawlatowajana
Viktorovna1012
ВитальевичЕвгеньевич346