![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Nike |
![]() ![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Никита Репутация: ![]() ![]() ![]() |
Дана вещественная матрица размером NxM. Упорядочить ее строки по возрастанию сумм их элементов.
Сумма у меня считается, а вот сортировку ни как не могу организовать. Подскажите пожалуйста... #include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
const int n=5; //Количество строк.
const int m=3; //Количество столбцов.
int array[n][m]; //Основной массив.
cout<<"Zapolnite massiv 5x3: \n";
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
cin>>array[i][j]; //Заполнение массива.
//Подсчет суммы в каждой строке.
int summa;
int sum[n];
for (int i=0;i<n;i++)
{
summa=0;
for (int j=0;j<m;j++)
summa=summa+array[i][j];
sum[i]=summa;
cout<<"Summa "<<i+1<<"-i stroki: "<<sum[i]<<"\n";
}
system("PAUSE");
return 0;
}
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
После заполнения массива sum - делаем так:
for(int i = 0; i < n; i++) {
for(int j = n - 1; j > i; j--) {
if(sum[j - 1] > sum[j]) {
int T = sum[j]; sum[j] = sum[j - 1]; sum[j - 1] = T;
for(int k = 0; k < m; k++) {
T = array[j - 1][k]; array[j - 1][k] = array[j][k]; array[j][k] = T;
}
}
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; ++j)
cout << setw(4) << array[i][j]; // подключить <iomanip> чтоб не было ошибки
cout << endl;
}
В принципе, можно еще добавить функцию swap(), которая будет обменивать 2 числа, тогда код будет более читаемым... |
Nike |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Никита Репутация: ![]() ![]() ![]() |
Спасиб! Разобрался
![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 20:58 |