1.Создать массив целых чисел R[1..n], содержащий серии чисел разделенных нулями. Отсортировать массив по возрастанию сумм чисел в сериях.
2.В матрице NxN определить суммы каждой диагонали параллельно побочной, включая её. Обнулить диагональ с максиамльной суммой.
xxBOBAHxx
20.10.2008 19: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 22:34
Нужно сортировать группы внутри массива ? Или что ? приведи пару примеров.
xxBOBAHxx
20.10.2008 23: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
21.10.2008 0: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:=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.
Попробуй так
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.