Предмет: Информатика,
автор: FokuMeLip
Используйте одномерный массив для решения следующей задачи. Прочитайте 20 чисел, каждое из которых находится в диапазоне от 10 до 100 включительно. После того, как прочли очередное число, напечатайте его, но только в том случае, если оно не дублирует ранее прочитанные числа. Предусмотрите "наихудший" случай, когда все 20 чисел различны. Используйте наименьший возможный массив для решения этой задачи.
Паскаль! дам 20 баллов
Ответы
Автор ответа:
0
Для того, чтобы узнать, не встречалось ли 20-е число раньше, надо помнить, какие числа были до этого. Так что без массива с меньшим размером, чем 19, не обойтись (на самом деле это так, только если в каждом элементе массива хранить только одно число. Но мы так и будем делать).
Алгоритм для решения задачи выберем простой: записываем все предыдущие числа в массив и для каждого следующего числа проходим по массиву.
var
a: array[1..19] of byte;
i, j, t: byte;
begin
for i := 1 to 20 do
begin
read(t);
if i < 20 then a[i] := t;
for j := 1 to i - 1 do
if a[j] = t then
t := 0;
if t > 0 then write(t, ' ');
end;
end.
Пример ввода:
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10
Пример вывода:
1 2 3 4 5 6 7 8 9 10
Алгоритм для решения задачи выберем простой: записываем все предыдущие числа в массив и для каждого следующего числа проходим по массиву.
var
a: array[1..19] of byte;
i, j, t: byte;
begin
for i := 1 to 20 do
begin
read(t);
if i < 20 then a[i] := t;
for j := 1 to i - 1 do
if a[j] = t then
t := 0;
if t > 0 then write(t, ' ');
end;
end.
Пример ввода:
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10
Пример вывода:
1 2 3 4 5 6 7 8 9 10
Похожие вопросы
Предмет: Русский язык,
автор: altana8608
Предмет: Физика,
автор: Xoloproshka
Предмет: Русский язык,
автор: Аноним
Предмет: Математика,
автор: TOXA2305
Предмет: Алгебра,
автор: katia20012001yt