Тема: Сортування стовпців матриць
Характеристикою стовпця цілочисельної матриці назвемо суму модулів його негативних непарних елементів. Переставляючи стовпці заданої матриці, розташувати їх відповідно до зростання характеристик. Знайти суму елементів в тих стовпцях, які містять хоч би один негативний елемент. (Як відсортувати стовпці без індексів?)
#include "stdafx.h"
#include "math.h"
#include "conio.h"
#include "iostream"
using namespace std;
void main()
{
int a[20][20]={0},i,j,ch[20]={0},tmp,index[20],sam=0,st=0,m,n;
cout<<"vvedite razmernost\n"<<endl;
cin>>n>>m;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
cin>>a[i][j];
}
}
cout<<"\n\n";
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if (a[i][j]<0 && a[i][j]%2)
{
ch[j]+=abs(a[i][j]);
}
printf("%4d ",a[i][j]);
index[i]=i;}
cout<<endl;
}
for(i=0;i<n-1;i++)
for(j=i+1;j<m;j++)
if (ch[index[j]]<ch[index[i]])
{
tmp=index[j];
index[j]=index[i];
index[i]=tmp;
}
cout<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%4d ",a[i][index[j]]);
}
cout<<endl;
}
cout<<endl;
for(int j=0;j<m;j++)
{
sam=0;
for(int i=0;i<n;i++)
{
if(a[i][j]<0&&abs(a[i][j])%2==1)
{
sam+=abs(a[i][j]);
}
}
cout<<"stolbec : "<<j<<" summa "<<sam<<endl;
}
for(int j=0;j<m;j++)
{st=0;
for(int i=0;i<n;i++)
{
if(a[i][j]<0)
{
for(int i=0;i<n;i++)
{
st+=a[i][j];
}
break;
}
}
cout<<"\n Stolbec : "<<j<<" Summa "<<st; }
_getch();
}