Форум «Всё о Паскале» _ Задачи _ Одномерный массив, элементы заканчивающиеся на 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;
решено
Добавлено через 1 мин. почему j-1? т.к. в цикле у нас есть inc(j) и потому появляется одна лишняя ячейка.
Добавлено через 1 мин. Можно закрывать
Автор: 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 седьмой сверху. Значит, не искал...