Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
| 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; } } -------------------- |
![]() ![]() |
|
Текстовая версия | Сейчас: 20.5.2012, 23:49 |