Помощь - Поиск - Пользователи - Календарь
Полная версия: 1.Создать массив целых чисел R[1..n], содержащий серии чисел разделенных нулями. Отсортировать массив по возрастанию сумм чисел в сериях. 2.В матриц
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
xxBOBAHxx
1.Создать массив целых чисел R[1..n], содержащий серии чисел разделенных нулями. Отсортировать массив по возрастанию сумм чисел в сериях.


2.В матрице NxN определить суммы каждой диагонали параллельно побочной, включая её. Обнулить диагональ с максиамльной суммой.


xxBOBAHxx
1.uses crt;
const n=30;
var a,s, g:array[1..n] of integer;
i, h, k, c:integer;
priz:boolean;
begin clrscr;
randomize;
for i:=1 to n do
begin a[i]:=-10+random(20);
write(a[i], ' ');
end;
s[i]:=0;
while a[i]<>0 do
s[i]:=s[i]+a[i];
writeln(s[i], 'symma', i);
repeat dec(k);
priz:=true;
for i:=1 to k do
if s[i]>s[i+1] then
begin
c:=s[i];
s[i]:=s[i+1];
s[i+1]:=c;
priz:=false;
end;
until priz;
writeln(' ', s[i]);
readkey
end.


Но ответы какие то корявые, что изменить то надо или исправить??Помогите пжл...
klem4
Нужно сортировать группы внутри массива ? Или что ? приведи пару примеров.
xxBOBAHxx
1)кароче например дан массив
1 45 564 32 123 43 5 0 343 23 43 1 34 45 0
2) нужно посчитать сумму до первого нуля, т.е. S:1+45+564+32+123+43+5 потом от 1-ого нуля следующего (S=343+23+43+1+34+45) и т.д.
3)потом эти суммы надо записать в новый массив
4)дальше эти суммы в получившемся массиве необходимо отсортировать по возрастанию сумм чисел
Client
uses crt;
var
a,b:array[1..20] of integer;
i,j,n,s,k:byte;
begin
clrscr;
write('n= ');
readln(n);
for i:=1 to n do read(a[i]);
s:=0;
j:=0;
for i:=1 to n do begin
if a[i]=0 then begin
inc(j);
b[j]:=s;
s:=0;
end
else s:=s+a[i]
end;
k:=j;
for j:=1 to k do write(b[j],' ');
writeln;
for j:=1 to k-1 do
for i:=1 to k-j do
if b[i]>b[i+1] then begin
s:=b[i];
b[i]:=b[i+1];
b[i+1]:=s
end;
for j:=1 to k do write(b[j],' ');
readkey
end.
Попробуй так
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.