Вопрос задан 16.10.2018 в 17:42. Предмет Информатика. Спрашивает Привалова Анна.

Даны 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.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Паринбекова Аяна.
Решение задачи в файле (есть .pas и .txt версии)

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Я могу помочь вам с вашим кодом.

Я заметил, что у вас есть несколько ошибок в вашем коде. Вот некоторые из них:

- Вы используете переменную `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. ```

Надеюсь, это поможет вам. Удачи!

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Изначально, вам нужно сравнить сумму двух массивов и вывести результат на экран. Если массивы равны, то выведите "Массивы равны". Если массивы не равны, то определите, в каком из них сумма больше и выведите соответствующее сообщение.

Ваш код имеет некоторые ошибки. Давайте исправим их:

```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`.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос