Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 29.11.2022
Сообщений: 39
1

Упорядочить (переставить) строки матрицы по не убыванию наименьших элементов строк

04.12.2022, 19:52. Показов 465. Ответов 1

Author24 — интернет-сервис помощи студентам
Дана действительная матрица D (7х9). Упорядочить (переставить) строки матрицы по не убыванию наименьших элементов строк.
Ниже код, который нашел на форуме, но он почемуто не компилируется. Помогите пожалуйста разобраться
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
 
float matr[7][9];
int imin[7];         // массив индексов наименьших элементов строк
float min,a;
int i,j,k,l,ii;
 
for(i=0;i<7;i++)
for(j=0;j<9;j++) matr[i][j]=rand()%100;
 
printf("\n Исходная матрица \n");
for(i=0;i<7;i++){for(j=0;j<9;j++) printf(" %4.2f",matr[i][j]); printf("\n");}
 
//ищем минимальные элементы по строкам
for(i=0;i<7;i++){
min=matr[i][0];
imin[i]=0;
for(j=1;j<9;j++){if( min > matr[i][j] ) min=matr[i][j], imin[i]=j;}
}
 
// сортируем строки исходной матрицы по не убыванию наименьших элементов
for(i=0;i<6;i++)
{
min=matr[i][imin[i]];
l=i;
for(ii=i+1;ii<7;ii++)
{
  if( min > matr[ii][imin[ii]]  ) min=matr[ii][imin[ii]],l=ii;  //запомнили строку с наименьшим элементом
}
 
if( l != i )
{ 
// меняем строки местами-поднимаем строку с мин. элементом на верх
for(j=0;j<9;j++) a=matr[i][j],matr[i][j]=matr[l][j],matr[l][j]=a;
//перестановка в массиве индексов
k=imin[i];imin[i]=imin[l];imin[l]=k;
}
 
}
printf ("\n Готовая матрица \n");
for(i=0;i<7;i++)
{
for(j=0;j<9;j++) printf(" %4.2f",matr[i][j]);
printf("\n");
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2022, 19:52
Ответы с готовыми решениями:

Упорядочить строки матрицы по не убыванию наименьших элементов строк
Дана вещественная матрица D (7х9). Упорядочить (переставить) строки матрицы по не убыванию...

Упорядочить (переставить) строки матрицы по неубыванию наименьших элементов строк
Помогите пожалуйста с задачей! Дана вещественная матрица D (7х9). Упорядочить ( переставить)...

упорядочить(переставить) строки матрицы по неубыванию значений наименьших элементов строк
Здравствуйте, помогите решить задачу!! Дана действительная матрица размером n x m...

упорядочить(переставить) строки матрицы по неубыванию значений наименьших элементов строк
Здравствуйте, помогите решить задачу!! Дана действительная матрица размером n x m...

Упорядочить (переставить) строки матрицы по неубыванию значений наименьших элементов строк
Помогите решить задачу на с++ С помощью датчика случайных чисел сформировать двумерный массив из...

1
37 / 21 / 17
Регистрация: 13.04.2016
Сообщений: 106
04.12.2022, 20:07 2
Лучший ответ Сообщение было отмечено Pavlick как решение

Решение

Нужно просто обозначить, что код находится в main ну и для rand не забыть указать заголовочный файл.
Код ниже должен скомпилироваться без проблем.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float matr[7][9];
int imin[7]; // массив индексов наименьших элементов строк
float min,a;
int i,j,k,l,ii;
 
for(i=0;i<7;i++)
for(j=0;j<9;j++) matr[i][j]=rand()%100;
 
printf("\n Исходная матрица \n");
for(i=0;i<7;i++){for(j=0;j<9;j++) printf(" %4.2f",matr[i][j]); printf("\n");}
 
//ищем минимальные элементы по строкам
for(i=0;i<7;i++){
min=matr[i][0];
imin[i]=0;
for(j=1;j<9;j++){if( min > matr[i][j] ) min=matr[i][j], imin[i]=j;}
}
 
// сортируем строки исходной матрицы по не убыванию наименьших элементов
for(i=0;i<6;i++)
{
min=matr[i][imin[i]];
l=i;
for(ii=i+1;ii<7;ii++)
{
if( min > matr[ii][imin[ii]] ) min=matr[ii][imin[ii]],l=ii; //запомнили строку с наименьшим элементом
}
 
if( l != i )
{
// меняем строки местами-поднимаем строку с мин. элементом на верх
for(j=0;j<9;j++) a=matr[i][j],matr[i][j]=matr[l][j],matr[l][j]=a;
//перестановка в массиве индексов
k=imin[i];imin[i]=imin[l];imin[l]=k;
}
 
}
printf ("\n Готовая матрица \n");
for(i=0;i<7;i++)
{
for(j=0;j<9;j++) printf(" %4.2f",matr[i][j]);
printf("\n");
}
return 0;
}
1
04.12.2022, 20:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2022, 20:07
Помогаю со студенческими работами здесь

Упорядочить (переставить) строки матрицы по возрастанию значений наименьших элементов строк (сортировка обменом)
Помогите, пожалуйста, доделать код. Вот задание: Дана вещественная матрица размером n x m;...

Упорядочить (переставить) строки матрицы по убыванию максимальных элементов строк
Результаты контроля параметров технологического процесса производства печатных плат зведены в...

Упорядочить (переставить) строки матрицы по убыванию сумм элементов строк
Дана действительная матрица размером MxN. Упорядочить (переставить) строки матрицы по убыванию...

Упорядочить (переставить) строки матрицы по убыванию значений наибольших элементов строк
Дана действительная матрица размером MxN. Упорядочить (переставить) строки матрицы по убыванию...

Упорядочить (переставить) строки матрицы по убыванию значений последних элементов строк
Дана действительная матрица размером M N. Упорядочить (переставить) строки матрицы по УБЫВАНИЮ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru