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

> Внимание!

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

 
 Ответить  Открыть новую тему 
> Матрицы, C++
Nike
сообщение 27.11.2007 22:06
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Никита

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


Дана вещественная матрица размером 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;
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 28.11.2007 0:26
Сообщение #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
сообщение 28.11.2007 7:21
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Никита

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


Спасиб! Разобрался smile.gif Чучуть сам не дошел...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

- Текстовая версия 18.07.2025 20:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"