Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2015, 00:12   #1
DaffyDuck
 
Аватар для DaffyDuck
 
Регистрация: 20.12.2015
Сообщений: 7
По умолчанию Сортировка Массива

Ребята, как расположить сумму отрицательных элементов в соответствии с убыванием характеристик?
Код:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int p, k, r;
    cout << "Введите кол-во строк и стобцов =";
    cin >> p >> r;
    int i, j;
    int **a = new int*[p];
    for (i = 0; i < p; i++) a[i] = new int[r];
    cout << "Введите эл-ты массива: " << endl;
    for (i = 0; i < p; i++)
        for (j = 0; j < p; j++)
            cin >> a[i][j];
    for (i = 0; i < p; i++)
    {
        for (j = 0; j < r; j++)
        {
            cout << setw(4) << a[i][j] << " ";
        }
        cout << endl;
 
    }
    int num = -1;
    {for (j = 0; j < r; j++)
        for (i = 0; i < p; i++)
        {
            if ((a[i][j] == 0) && (num == -1));
            num = j;
        }
    cout << "Номер столбца: " << num << endl;
}
    cout << "Сумма отрицателных чётных элементов :\n";
 
            for (int i = 0; i < p; i++)
            {
                int    sum = 0;
                for (int j = 0; j < p; j++)
                {
                    if ((a[i][j] < 0) && (a[i][j] % 2 == 0))
                        sum += a[i][j];
                }
                cout << sum << endl;
            }
 
    }
DaffyDuck вне форума Ответить с цитированием
Старый 23.12.2015, 10:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Каких характеристик?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2015, 20:24   #3
DaffyDuck
 
Аватар для DaffyDuck
 
Регистрация: 20.12.2015
Сообщений: 7
По умолчанию

Сумма отрицательных чётных элементов.
DaffyDuck вне форума Ответить с цитированием
Старый 23.12.2015, 22:21   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пфф... Ну ты и спец объяснять... Неужели нельзя задачу толково описать? Сказать мол: Характеристикой столбца есть то-то и то-то... ?
Эх... Что за студент нонче пошел? Чему вас только учат?
Код:
//Создаем индексный массив
int **sums=new int[r];
for(j=0;j<r;j++){
 sums[j]=new int[2];
 sums[j][0]=j;
 for(i=0;i<p;i++) {
   if(a[i][j]<0) sums[j][1]+=a[i][j];
 }
}


//Упорядочиваем индексы по характеристике
for(j=0;j<r;j++){
 for(i=0;i<r;i++) {
   if(sums[j][1]<sums[i][1]){
     int q=sums[j][1],w=sums[j][0];
     sums[j][1]=sums[i][1]; sums[j][0]=sums[i][0];
     sums[i][1]=q; sums[i][0]=w;
   }
 }
}

//Выводим матрицу по номерам из индексированных характеристиках.
    for (i = 0; i < p; i++)
    {
        for (j = 0; j < r; j++)
        {
            cout << setw(4) << a[i][sums[j][0]] << " ";
        }
        cout << endl;
 
    }
Это с потолка, не проверял. Смысл в том, чтоб в дополнительном массиве запомнить номера колонок и их характеристики. Потом отсортировать по характеристике - номера колонок тоже перестроятся, и уже на выводе брать номера именно из этого допмассива.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
сортировка массива Alex1205 Общие вопросы C/C++ 8 20.02.2011 18:19
Сортировка массива bwitcher Помощь студентам 2 17.02.2011 14:39
Сортировка массива Cpluser Общие вопросы C/C++ 4 04.03.2009 23:57