


Сортировка значений двумерного массива c++
Каждый из элементов массива задаётся формулой a= 39sin(i) +29cos(j)+31sin(k). k вводится с клавиатуры.
Нужно квадраты элементов отсортировать по пятому столбцу по возрастанию. Задание на скрине. Мой вариант 772. Из условий я уже составила массив с 49-ю значениями а, где для j=4 нашла соответствующие значения fi. Эти пункты можно не решать.
Мне лишь нужно отсортировать значения квадратов а по возрастанию по 5-му столбцу (j=5). На заново созданном массиве с нуля, чтобы не нагромождать. Заранее спасибо.

Вот мой код для первой части задания, если это влияет на решение.


#include "iostream"
#include "cmath"
#include "iomanip"
using namespace std;
int main(){
int a[7][7],b[7],k,t,s=0,n=0;
do cout<<"k (0..10): ", cin>>k; while(abs(k-5)>5);
for(int i=1;i<=7;i++){
for(int j=1;j<=7;j++)
cout<< setw(4)<<(a[i-1][j-1]=round(39*sin(i)+29*cos(j)+39*cos(k)))<<' ';
cout<< endl;}
cout<<"sinuses: "; for(int j=0;j<7;j++)cout<< sin(a[6][j])<<' '; cout<< endl;
for(int i=0;i<7;i++)for(int j=0;j<7;j++)if(a[i][j]>0)s+=a[i][j],n++;
cout<<"average of positives="<< float(s)/n<< endl;
for(int i=0;i<7;i++)b[i]=a[i][4]*a[i][4];
for(int i=0;i<6;i++)for(int j=0;j<6;j++)
if(b[j]>b[j+1]){t=b[j]; b[j]=b[j+1]; b[j+1]=t;}
cout<<"quadrates: "; for(int i=0;i<7;i++)cout<< b[i]<<' '; cout<< endl;}
Можно попроще? Дана матрица М на Н и ее надо отсортировать по правилу?