Var k, m, num: integer; Dat: array [1..10] of integer; begin Dat[1]:=7;Dat[2]:=-8; Dat[3]:=3;Dat[4]:=6; Dat[5]:=-4;Dat[6]:=3; Dat[7]:=5;Dat[8]:=-5; Dat[9]:=7;Dat[10]:=1; num:=1; m:=Dat[1]; for k:=2 to 10 do begin if Dat[k]*m ...

Var k, m, num: integer; Dat: array [1..10] of integer; begin Dat[1]:=7;Dat[2]:=-8; Dat[3]:=3;Dat[4]:=6; Dat[5]:=-4;Dat[6]:=3; Dat[7]:=5;Dat[8]:=-5; Dat[9]:=7;Dat[10]:=1; num:=1; m:=Dat[1]; for k:=2 to 10 do begin if Dat[k]*m < 0 then begin m:=Dat[k]; num:=k end end; write (num); end. В результате выполнения программы будет напечатано 9 , не смог разобраться почему.
Гость
Ответ(ы) на вопрос:
Гость
В программе последовательно определяются номера элементов (num), имеющих знак, противоположный знаку предыдущих (предыдущего) элемента (Dat[k]*m < 0). Переменная num в цикле последовательно будет принимать значения 2, 3, 5, 6, 8, 9. После цикла будет выведено последнее значение num. (У элемента Dat[10] знак совпадает со знаком элемента Dat[9].)
Не нашли ответ?
Ответить на вопрос
Похожие вопросы