
Даны 2 массива из n элементов.нужно сравнить сумму массивов,вывести на экран если массивы равны,а
если не равны, то каком в каком из них сумма больше?задачу практически решила,только вот немного запуталасьпомогите найти ошибку пожалуйстааvar a:array of integer; b:array of integer; i:integer; s,d,f,n,k:integer; begin writeln ('vvedite n'); readln (n); setlength (a,n); setlength (b,n); randomize; s:=0;d:=0; f:=0; for for k:=0 to n-1 do begin a[i]:=random(100); b[i]:=random(100); if a[i]=b[i] then f:=f+1; end; if f=n-1 then writeln ('massivy ravny') else begin for k:=0 to n-1 do begin s:=s+a[i]; d:=d+b[i]; end;if s>d thenwriteln ('summa bolshe v massive a')elsewriteln ('summa bolshe v massive b');end;readln;end.

Ответы на вопрос





Я могу помочь вам с вашим кодом.
Я заметил, что у вас есть несколько ошибок в вашем коде. Вот некоторые из них:
- Вы используете переменную `i` в цикле `for`, но не инициализируете ее и не изменяете ее значение. Вам нужно использовать переменную `k`, которую вы объявили в начале цикла. - Вы используете оператор `for` два раза подряд, что приводит к синтаксической ошибке. Вам нужно удалить лишний оператор `for`. - Вы сравниваете сумму массивов с `n-1`, а не с `n`. Это приводит к неправильному результату, если все элементы массивов равны. Вам нужно сравнивать с `n`.
Вот исправленный код:
```pascal var a:array of integer; b:array of integer; i:integer; s,d,f,n,k:integer; begin writeln ('vvedite n'); readln (n); setlength (a,n); setlength (b,n); randomize; s:=0;d:=0;f:=0; for k:=0 to n-1 do begin a[k]:=random(100); b[k]:=random(100); if a[k]=b[k] then f:=f+1; end; if f=n then writeln ('massivy ravny') else begin for k:=0 to n-1 do begin s:=s+a[k]; d:=d+b[k]; end; if s>d then writeln ('summa bolshe v massive a') else writeln ('summa bolshe v massive b'); end; readln; end. ```
Надеюсь, это поможет вам. Удачи!



Изначально, вам нужно сравнить сумму двух массивов и вывести результат на экран. Если массивы равны, то выведите "Массивы равны". Если массивы не равны, то определите, в каком из них сумма больше и выведите соответствующее сообщение.
Ваш код имеет некоторые ошибки. Давайте исправим их:
```pascal var a: array of integer; b: array of integer; i, s, d, f, n, k: integer;
begin writeln('Введите n:'); readln(n); setlength(a, n); setlength(b, n); randomize; s := 0; d := 0; f := 0;
for i := 0 to n-1 do begin a[i] := random(100); b[i] := random(100); if a[i] = b[i] then f := f + 1; end;
if f = n then writeln('Массивы равны') else begin for i := 0 to n-1 do begin s := s + a[i]; d := d + b[i]; end;
if s > d then writeln('Сумма больше в массиве a') else writeln('Сумма больше в массиве b'); end;
readln; end. ```
Теперь ваш код должен работать правильно. Он сравнивает сумму двух массивов и выводит соответствующее сообщение на экран. Если массивы равны, выводится "Массивы равны". Если массивы не равны, выводится "Сумма больше в массиве a" или "Сумма больше в массиве b" в зависимости от того, в каком массиве сумма больше.
Примечание: Пожалуйста, убедитесь, что вы используете правильные индексы в циклах `for`. В вашем исходном коде использовалась переменная `k`, но она не использовалась внутри цикла. Я предположил, что вы хотели использовать переменную `i` вместо `k`.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili