• 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 , не смог разобраться почему.

Ответы 1

  • В программе последовательно определяются номера элементов (num), имеющих знак, противоположный знаку предыдущих (предыдущего) элемента (Dat[k]*m < 0). Переменная num в цикле последовательно будет принимать значения 2, 3, 5, 6, 8, 9. После цикла будет выведено последнее значение num. (У элемента Dat[10] знак совпадает со знаком элемента Dat[9].)
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years