Форум программистов, компьютерный форум 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(); подробнее

Показать сообщение отдельно
Кротяка
 Аватар для Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 370
16.05.2014, 05:06  [ТС]     Сортировка строк матрицы в порядке возрастания их средних арифметических значений
нужно, насколько я понимаю, применить сортировку выбором, но сделать это для двумерного массива с данным условием у меня не получается

Добавлено через 5 часов 23 минуты
вот наработки, сортирует "вроде как" правильно, но не во всех случаях
хотелось бы узнать, где ошибка/ошибки
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
template <class T> void PreobrMatrix(Matrix<T>& A)
{
    int num;
    int n = A.getN();
    int m = A.getM();
    double tmp, temp, min_avg;
    double* avg = new double[n];
    
    //находим среднее арифметическое каждой строки
    for(int i = 0; i < n; i++)
    {
        float sum = 0;
        for(int j = 0; j < m; j++)
            sum += A.getMatrixElement(i, j);
        avg[i] = sum / m;
    }       
        
    //преобразовываем матрицу
    min_avg = avg[0];
    for(int i = 0; i < n; i++)
    {
        if(min_avg > avg[i])
        {
            min_avg = avg[i];
            num = i;
            for(int j = 0; j < n; j++)
            {
                tmp = avg[num];
                avg[num] = avg[j];
                avg[j] = tmp;
                for (int k = 0; k < m; k++)
                {
                    temp = A.getMatrixElement(num, k);
                    A.setMatrixElement(num, k, A.getMatrixElement(j, k));
                    A.setMatrixElement(j, k, temp);
                }
            }               
        }
    }
 
    cout<<endl<<"Массив средних арифметических:"<<endl;
    for(int i = 0; i < n; i++)
        cout<<avg[i]<<"  ";
    cout<<endl;
 
    cout<<endl<<"Преобразованная матрица:"<<endl<<endl; 
}
 
Текущее время: 06:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru