← Все вопросы

как ввести массив с клавиатуры в паскале? через цикл что-то не выходит

Задан 12 месяцев назад1.4к просмотров2 ответа
5

Надо чтобы пользователь сам вводил числа в массив, а я не пойму как readln в цикл засунуть. У меня вводится только одно число и всё, остальные нули.

var
  a: array[1..5] of integer;
  i: integer;
begin
  readln(a);
  for i := 1 to 5 do
    writeln(a[i]);
end.

Как заставить его прочитать все 5?

2 ответа

11
✓ Принятый ответ — помог автору

Тебе надо читать каждый элемент отдельно, тоже в цикле. readln(a) целиком массив не прочитает. Вот так:

var
  a: array[1..5] of integer;
  i: integer;
begin
  writeln('Введите 5 чисел:');
  for i := 1 to 5 do
    read(a[i]);
  for i := 1 to 5 do
    writeln('a[', i, '] = ', a[i]);
end.

Логика: цикл пробегает индексы от 1 до 5, и на каждом шаге read(a[i]) кладёт введённое число в ячейку с этим номером.

Маленький совет: я взял read, а не readln — тогда числа можно вводить в одну строку через пробел (5 8 2 1 9 и Enter). Если поставить readln — каждое с новой строки. Оба варианта рабочие, бери что удобнее.

3

у меня была та же беда, помогло понять что массив сам по себе не умный, его надо заполнять по ячейкам. цикл for + a[i] — твои друзья на ближайший год)

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект