IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Сортировка бинарными вставками
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Женский
Реальное имя: Katia

Репутация: -  0  +


Задание: в матрице размера m*n упорядочить строки матрицы по невозрастанию сумм элементов строк
(сортировка бинарным вставками)

вот программа:
#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, то no1.gif unsure.gif

Заранее огромное СПАСИБО
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.12.2021 4:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name