IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Обработка матриц
Innochka
сообщение 5.12.2010, 17:41
Сообщение #1


Пользователь


Группа: Собеседник
Сообщений: 10
Регистрация: 6.11.2010
Пользователь №: 23 351



В матрице упорядочить строки по возрастанию сумм элементов строк методом выбора.

#include<conio.h>
#include<stdlib.h>
#include<stdio.h>

void main ( )
{
randomize ();
clrscr ();
float A[15][15],p;
int n,m,i,j,imin,a;
float Summa[15],min,imin1;

printf ("Input size n. It should be more then 0\n");
scanf ("%d",&n);
printf ("Input size m. It should be more then 0\n");
scanf ("%d",&m);

printf(" Basic Matrix\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
A[i][j]=-100+(float)rand()*200./RAND_MAX;
printf("%8.2f", A[i][j]);
}
printf ("\n") ;
}
for ( i=0; i<n; i++)
{
Summa[i]=0;
for(j=0; j<m; j++)
{
Summa[i]+=A[i][j];
}
printf("Summa=%.1f\n",Summa[i]);
}

for(i=0;i<n;i++)
{
min=Summa[0];
imin=0;
if(Summa[i]<min)
{
min=Summa[i];
imin=i;
}

for(j=0;j<m;j++)
{
p=A[imin][j];
A[imin][j]=A[0][j];
A[0][j]=p;
}
for(a=i+1;a<n;a++)

if(Summa[a]<Summa[imin])
{
imin1=a;
for(j=0;j<m;j++)
{
p=A[imin1][j];
A[imin1][j]=A[i][j];
A[i][j]=p;
}

}
}
printf("New matrix\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf(" %.2f ",A[i][j]);
printf("\n");
}

getch ();
}

Сообщение отредактировал Innochka - 5.12.2010, 17:41
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
PolPoll
сообщение 22.12.2010, 16:42
Сообщение #2


:)


Группа: Главные администраторы
Сообщений: 5 858
Регистрация: 24.11.2005
Из: Москва
Пользователь №: 5 327



Код
for(i=0;i<n-1;i++)
{
min=Summa[i];
imin=i;

for(a=i+1;a<n;a++)
if(Summa[a]<Summa[imin])
{
min=Summa[a];
imin=a;
}

if (imin!=i){
for(j=0;j<m;j++)
{
p=A[imin][j];
A[imin][j]=A[i][j];
A[i][j]=p;
}
Summa[imin]=Summa[i];
Summa[i]=min;
}
}


--------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 



- Текстовая версия Сейчас: 20.5.2012, 23:49