Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Одномерный массив, элементы заканчивающиеся на 7

Автор: TommyG 11.12.2010 21:07

Собственно, условие выше ^

 var a,b:array[1..100] of integer;
i,j:integer;
begin
readln(n);
for i:=1 to n do
readln(a[i]);
j:=1;
for i:=1 to n do
if a[i] mod 10=7 then
begin
b[j]:=a[i];
inc(j);
end;

как сортировку теперь b массиву сделать?

Автор: volvo 11.12.2010 21:12

Цитата
как сортировку теперь b массиву сделать?
В FAQ-е форума лежит добрый десяток алгоритмов сортировки, выбирай любой... Но для начала надо правильно заполнить массив B. Потому что элементы, заканчивающиеся на 7, и элементы кратные 7 - это разные вещи. У тебя в массив B как раз заносятся кратные семи...

Оканчивается на 7 - это (a[ i ] mod 10) = 7

Автор: TommyG 11.12.2010 21:42

Окей ща гляну
насчет оканчивающиеся да - чисто опечатка)) все верно mod 10.

Добавлено через 1 мин.
Поиск в FAQ не нашел темы со словом "сортировка"
но все же
наверно так будет...

Добавлено через 9 мин.

 var a,b:array[1..100] of integer;
i,j,tmp,n:integer;
begin
readln(n);
for i:=1 to n do
readln(a[i]);
j:=1;
for i:=1 to n do
if a[i] mod 10=7 then
begin
b[j]:=a[i];
inc(j);
end;
n:=j-1;
for i:=1 to n-1 do
for j:=i+1 to n do
if (b[j]<b[i]) then
begin
tmp:=b[i];
b[i]:=b[j];
b[j]:=tmp;
end;
for i:=1 to n do
writeln(b[i],' ');
end.


прогон программы
 
5
7 17 27 8 10
вывод
0 0 7 17 27


как убрать ненужные нули?

Добавлено через 13 мин.
добавил перед сортировкой
n:=j;
прогон программы
 
5
7 17 27 8 10
вывод
0 7 17 27


как убрать ненужный ноль?

Добавлено через 1 мин.
ну собсно терь по логике исправил n:=j-1;
smile.gif
решено

Добавлено через 1 мин.
почему j-1? т.к. в цикле у нас есть inc(j) и потому появляется одна лишняя ячейка.

Добавлено через 1 мин.
Можно закрывать cool.gif

Автор: volvo 12.12.2010 1:00

Цитата
Поиск в FAQ не нашел темы со словом "сортировка"
Правда?
http://forum.pascal.net.ru/index.php?showtopic=3065, выдается по http://forum.pascal.net.ru/index.php?act=Search&CODE=show&searchid=0887ad5110cab4ac0ef1389727c7f15a&search_in=posts&result_type=topics&highlite=%2B%F1%EE%F0%F2%E8%F0%EE%E2%EA%E0 седьмой сверху. Значит, не искал...

Автор: TommyG 12.12.2010 3:52

Спасибо за ответ, но уже не актуально.