Страница:
<< 6 7 8 9
10 11 12 >> [Всего задач: 272]
"Вытаскивание" минимума
В массиве требуется найти минимальный элемент, и поставить его
на первое место, а то, что стояло на 1-м месте - на его место.
Если минимальных чисел несколько, можно менять с любым из них.
Если минимальное число уже стоит на 1-м месте, ничего изменять не нужно.
Входные данные
Вводится число N - количество элементов массива (1<=N<=100),
а затем - элементы массива (числа от 1 до 10000).
Выходные данные
Требуется вывести N чисел - элементы массива после перестановки
Пример входного файла
5
3 5 4 1 4
Пример выходного файла
1 5 4 3 4
Сортировка
Во входном файле задано сначала число N (1<=N<=100), а затем N целых
чисел, по модулю не превышающих 1000.
Выведите N чисел в порядке неубывания.
Пример входного файла
5
3 1 2 4 2
Пример выходного файла
1 2 2 3 4
Сортировка времени
Во входном файле записано сначала число N (1<=N<=100), а затем
N моментов времени. Каждый момент времени задается 3 целыми числами -
часы (от 0 до 23), минуты (от 0 до 60) и секунды (от 0 до 60).
В выходной файл выведите моменты времени, упорядоченные в порядке
неубывания (момент времени также выводится в виде трех чисел, ведущие нули
выводить не обязательно)
Пример входного файла:
4
10 20 30
7 30 00
23 59 59
13 30 30
Пример выходного файла:
7 30 0
10 20 30
13 30 30
23 59 59
Большая сортировка
Дано число N (1<=N<=100000), а затем N натуральных чисел из диапазона
от 1 до 100.
Выведите N чисел в неубывающем порядке
Пример входного файла
5
3 1 2 4 2
Пример выходного файла
1 2 2 3 4
Вам дана программа, решающая 136 задачу (p139.pas).
Требуется найти в ней ошибку, и объяснить (письменно
или устно), почему так происходит.
Текст программы p139.pas
const nmax=100;
var a:array[1..nmax] of integer;
n:integer;
i,j,g:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
reset(f1);
assign(f2,'output.txt');
rewrite(f2);
{Чтение входных данных}
read(f1,n);
for i:=1 to n do read(f1,a[i]);
{Сортировка массива}
for i:=1 to n do begin {Подбираем число на i-ое место}
g:=i; {Считаем, что самое маленькое число,
которое нам встретилось, стоит на месте i}
for j:=i+1 to n do {Перебираем все числа с i+1 до конца массива}
if a[j]<a[g] then g:=j; {Если нашли число, которое меньше,
чем то, что уже найдено, запоминаем его}
{Меняем местами числа, стоящие на i-ом и
на g-ом местах }
{Если a[i]=x, a[g]=y, то после выполнения
команды: }
a[i]:=a[i]+a[g]; {a[i]=x+y, a[g]=y}
a[g]:=a[i]-a[g]; {a[i]=x+y, a[g]=(x+y)-y=x}
a[i]:=a[i]-a[g]; {a[i]=(x+y)-x=y}
{То есть после этого a[i]=y, a[g]=x
обмен значений произошел}
end;
{Выводим результат}
for i:=1 to n do
write(f2,a[i],' ');
close(f1);
close(f2);
end.
Страница:
<< 6 7 8 9
10 11 12 >> [Всего задач: 272]