1.Создать массив целых чисел R[1..n], содержащий серии чисел разделенных нулями. Отсортировать массив по возрастанию сумм чисел в сериях.
2.В матрице NxN определить суммы каждой диагонали параллельно побочной, включая её. Обнулить диагональ с максиамльной суммой.
xxBOBAHxx
20.10.2008 15:39
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
20.10.2008 18:34
Нужно сортировать группы внутри массива ? Или что ? приведи пару примеров.
xxBOBAHxx
20.10.2008 19:47
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
20.10.2008 20:12
uses crt;
var
a,b:array[1..20] of integer;
i,j,n,s,k:byte;
begin
clrscr;
write('n= ');
readln(n);
for i:=1to n doread(a[i]);
s:=0;
j:=0;
for i:=1to n dobeginif a[i]=0thenbegin
inc(j);
b[j]:=s;
s:=0;
endelse s:=s+a[i]
end;
k:=j;
for j:=1to k dowrite(b[j],' ');
writeln;
for j:=1to k-1dofor i:=1to k-j doif b[i]>b[i+1] thenbegin
s:=b[i];
b[i]:=b[i+1];
b[i+1]:=s
end;
for j:=1to k dowrite(b[j],' ');
readkey
end.
Попробуй так
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.