(сортировка бинарным вставками)
вот программа:
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main()
{
float a[20][20], sum[20], c[20];
int an,bk,i,j,n,m,k,l;
float b;
clrscr();
printf("Введите размеры матрицы\n");
scanf("%d%d",&n,&m);
printf("Ввод матрицы A\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
scanf("%g",&a[i][j]);
}
for(i=0;i<n;i++)
{
sum[i]=0;
for (j=0;j<m;j++)
sum[i]+=a[i][j];
}
for (i=1;i<n;i++)
{
if (sum[i]>=sum[i-1]);
else
{
{
an=1;
bk=i-1;
if(sum[i]<=sum[1])
bk=1;
else
do
{
k=(an+bk)/2;
if ( (sum[i]>=sum[an])&(sum[i]<=sum[k]))
bk=k;
else
an=k;
}
while ((bk-an)>=1);
for(j=0; j<m;j++)
c[j]=a[i][j];
b=sum[i];
for(l=i;l<bk;l--)
for(j=0;j<m;j++)
a[l][j]=a[l-1][j];
for (l=0;l<bk;l--)
sum[l]=sum[l-1];
for(j=0;j<m; j++)
a[bk][j]=c[j];
sum[bk]=b;
}
}
printf("Матрица A\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%g\t",a[i][j]);
printf("\n");
}
}
Но работает как-то коряво
Например, если набрать матрицу 2*2 - 4 5 8 9 , то всу ок, а если - 8 9 4 5, то
Заранее огромное СПАСИБО