• дан массив b 60 заполнить целыми случайными числами найти произведение чисел кратных 7

Ответы 7

  • Можно даже сделать random(2)+1...
  • А почему бы и нет? В условии ведь не было ничего сказано.
    • Автор:

      chucky
    • 6 лет назад
    • 0
  • Да хотя бы потому, что если не указано, задача должна позволять задавать числа во всем диапазоне представления данных. Либо, надо указывать верхнюю границу таких данных, после которых может появиться неконтролируемое переполнение.
  • В Вашем варианте предельный случай (теоретически возможный) - это все 60 элементов на максимуме. Что дает даже для random(13)+1 величину порядка 13 в шестидесятой степени.
    • Автор:

      nike29qn
    • 6 лет назад
    • 0
  • Чему вас только учат...?
    • Автор:

      earllyons
    • 6 лет назад
    • 0
  • //Pascal ABC.NetVar b:array[1..60] of longint;i:longint;pr:int64;Beginpr:=1;for i:=1 to 60 dobeginb[i]:=random(99)+1;if (b[i] mod 7=0) then pr*=b[i];end;writeln('Получившийся массив:');for i:=1 to 60 dowrite(b[i],' ');writeln;writeln('Произведение чисел кратных 7 равно ',pr);End.//Если не пашет (ошибка компиляции)://1) В строке if (b[i] mod 7=0) then pr*=b[i]; замени pr*=b[i]; на pr:=pr*b[i];//2) Если всё равно ошибка компиляции, попробуй int64 заменить на longint//3) Если всё равно ошибка компиляции, longint переименуй в integer.
    • Автор:

      madilynn
    • 6 лет назад
    • 0
  • 1. Современное эффективное решение// PascalABC.NET 3.2, сборка 1362 от 14.12.2016// Внимание! Если программа не работает, обновите версию!begin  var a:=ArrRandom(60,1,99); a.Println;  Writeln('П=',a.Where(x->x mod 7=0).Aggregate(BigInteger(1),(x,y)->x*y))end.Пример79 23 80 37 68 93 7 77 16 29 97 73 36 33 36 98 91 67 28 37 91 17 42 28 83 85 33 28 8 28 61 85 76 92 78 31 82 91 43 35 21 7 27 83 82 57 36 28 13 42 88 38 54 73 36 62 80 52 54 82П=62174619259403654087884802. А вот решение, каким обычно обучают в школеvar  a:array[1..60] of integer;  i:integer;  p:real;begin  Randomize;  p:=1;  for i:=1 to 60 do    begin    a[i]:=Random(99)+1;    Write(a[i],' ');    if a[i] mod 7=0 then p:=p*a[i]    end;  Writeln;  Writeln('П=',p)end.Пример61 17 39 73 2 48 22 17 42 22 82 37 29 59 70 11 43 29 21 31 31 10 44 27 11 68 76 39 68 84 64 39 78 64 25 32 80 1 92 28 98 5 27 28 82 92 20 59 49 98 93 1 33 97 85 52 72 13 62 33 П=1.91341954266624E+15
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

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

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

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