Форум программистов, компьютерный форум CyberForum.ru

Сортировка строк матрицы в порядке возрастания их средних арифметических значений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить выпуклый ли многоугольник. http://www.cyberforum.ru/cpp-beginners/thread1176144.html
Задан многоугольник координатами в порядке обхода. Определить выпуклый ли он ? как сделать иначе не проверяя угол ? Хочется сделать не пользуясь библиотекой <math.h> Опять , откуда пойдет перечисление вершин неясно ,а перебирать четыре варианта направлений можно ,но как то так себе . ------------------------------ Допустим пользуюсь все таки math
C++ Написать функцию перевода из 10-й сс в 16-ую Помогите,пожалуйста,написать функцию перевода из 10 в 16-ую по такому принципу,с 2 и 8-ой справился,а вот с 16-ой не получается. Как я понимаю,надо подключить буквы в 16-ой,но не знаю как #include <iostream> using namespace std; int calc_10_to_2 (int dec) { int bin, mod; int d10 = 1; http://www.cyberforum.ru/cpp-beginners/thread1176143.html
C++ Удаление структуры по определенному полю.
Я сделал удаление элемента после заданного. Например я ввожу значение, если оно совпадает с колличеством, то следующая запись удаляется. #include <stdio.h> #include <string.h> #include <conio.h> #include <iostream.h> #include <iomanip.h>
Сформировать массив из средних арифметических отрицательных эле-ментов четных столбцов матрицы C++
2-Сформировать одномерный массив, состоящий из среднего арифметического отрицательных эле-ментов, располагающихся в каждом четном столбце матрицы X (n x m).
C++ Шаблонный класс vector. Найти объекты с названием, начинающимся на символ и со значением больше value http://www.cyberforum.ru/cpp-beginners/thread1176127.html
С помощью класса vector создан массив объектов CFruit. char* name = {"Apple", "Kiwi", "Lemon", "Grapes", "Lime", "Melon", "Banana"}; char* color = {"Red", "Red", "Yellow", "Blue", "Green", "Yellow", "Yellow"}; int weight = {250, 100, 250, 450, 200, 1000, 350}; vector <CFruit> fruits; for (int i(0); i < 7; i++) { CFruit *fruit = new CFruit (name, color, weight );...
C++ почему не видет switch? #include <iostream> #include<conio.h> #include<stdio.h> using namespace std; int menu(); подробнее

Показать сообщение отдельно
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
20.05.2014, 01:49     Сортировка строк матрицы в порядке возрастания их средних арифметических значений
Кротяка,
Кликните здесь для просмотра всего текста
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <vector>
#include <memory>
#include <algorithm>
#include <iterator>
 
class matrix {
public:
    matrix(const size_t& width = 2, const size_t& height = 2) 
        : rows(height), cols(width) 
    {
        array = new int*[rows];
        for (size_t i = 0; i < rows; ++i) {
            array[i] = new int[cols];
            std::generate(array[i], array[i] + cols, 
                [](){ return rand() % 100; });
        }
    }
    
    void set(const size_t& row, const size_t& col, const int& value) {
        array[row][col] = value;
    }
    
    int& get(const size_t& row, const size_t& col) const { return array[row][col]; }
    
    const size_t& getRows() const { return rows; }
    
    const size_t& getCols() const { return cols; }
    
    void sortByAverangeValue() {
        int* sums = new int[rows];
        for (size_t i = 0; i < rows; ++i) {
            sums[i] = std::accumulate(array[i], array[i] + cols, 0);
        }
        
        std::sort(array, array + rows, [&](int* a, int* b) {
            size_t i = std::distance(array[1], a),
                j = std::distance(array[1], b);
            return sums[i] < sums[j];
        });
        
        delete sums;
    }
    
    friend std::ostream& operator<< (std::ostream& out, const matrix& m) {
        for (size_t i = 0; i < m.rows; ++i) {
            for (size_t j = 0; j < m.cols; ++j)
                out << m.array[i][j] << ' ';
            out << std::endl;
        }
        
        return out;
    }
    
private:
    const size_t rows, cols;
    int** array;
};
 
int main () {
    matrix m(2, 4);
    std::cout << "Before\n" << m;
    m.sortByAverangeValue();
    std::cout << "After\n" << m;
}

Сортировка не работает. Если кто скажет почему поставлю +1.
 
Текущее время: 19:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru