Дан массив T (m, n). Отсортировать столбцы по убыванию их средних значений

Дан массив T (m, n). Отсортировать столбцы по убыванию их средних значений
Гость
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 procedure MatPrint(a:array[,] of integer); begin   var maxcol:=Length(a,1)-1;   for var i:=0 to Length(a,0)-1 do begin     for var j:=0 to maxcol do Print(a[i,j]);     Writeln     end end; begin   var m:=ReadInteger('Кол-во строк:');   var n:=ReadInteger('Кол-во столбцов:');   var t:=MatrixRandom(m,n,10,99); // инициализация матрицы   MatPrint(t);   var a:=new real[n]; // массив для средних по столбцам   for var j:=0 to n-1 do begin     var s:=0;     for var i:=0 to m-1 do s+=t[i,j];     a[j]:=s/m     end;   // cортированная последовательность индексов столбцов   var ai:=a.Select((x,i)->Rec(x,i)).SortedDescending     .Select(x->x.Item2).ToArray;   // cоздаем промежуточный массив   var u:array[,] of integer; SetLength(u,m,n);   for var j:=0 to n-1 do     for var i:=0 to m-1 do u[i,j]:=t[i,ai[j]];   t:=Copy(u); // вернем назад данные в исходный массив   Writeln;   MatPrint(t); end. Тестовое решение Кол-во строк: 5 Кол-во столбцов: 8 24 30 70 85 92 32 11 25 83 92 64 51 28 47 10 22 50 14 76 84 23 63 64 39 30 22 84 59 55 32 58 63 80 36 53 74 80 82 84 33 85 70 92 24 32 11 30 25 51 64 28 83 47 10 92 22 84 76 23 50 63 64 14 39 59 84 55 30 32 58 22 63 74 53 80 80 82 84 36 33
Не нашли ответ?
Ответить на вопрос
Похожие вопросы