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

сортировка столбцов / строк в матрице - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обращение к полям структуры http://www.cyberforum.ru/cpp-beginners/thread182617.html
Здравствуйте. Возник такой вопрос. Есть, например, структура с множеством полей struct Ex { int a1:4; int a2:1; int a3:2; // ... int a99:1;
C++ Builder Найти количество нечетных элементов матрицы, стоящих на позициях, кратных четырем Всем привет, помогите пожалуйста исправить программу! Тема: Двумерные массивы. Вот задание: найти количество нечетных элементов, стоящих на позициях кратных четырем. //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int i,j; int mas; int n=StrToInt(StringGrid1->RowCount); http://www.cyberforum.ru/cpp-beginners/thread182615.html
C++ Вычисление суммы ряда
Новичок Всем доброго время суток, я пока только изучаю C++, поэтому если будут ошибки прошу меня сторог не судить, нужно вычислить ряды: 1) 1 – 2 x + 3 x^2 - 4 x ^3 + … = ∑(-1)^n ∙ (n + 1) ∙ x^n = 1/((1 + x)^2) программу составил, но она не правильно вычисляет: #include <stdio.h> #include <math.h> #define n 10 int main()
Решить уравнение C++
Здраствуйте уважаемые программисты. Не получается решить уравнение. Дело в том что массивы мы еще не проходили, а по другому я не получается сделать. Есть ли в си просто функции min и max? как решить подобное уравнение?
C++ Сортировка http://www.cyberforum.ru/cpp-beginners/thread182594.html
Здравствуйте!Есть такая проблема.Нужно сделать в программе: метод квадратичной выборки с предварительной сортировкой. Поиск по заданному значению ключа.Есть листинг.но программа не работает=(подскажите пожалуйста в чём проблема!!!!!!очень срочно надо!!!!!!! заранее спасибо!! // search.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream>...
C++ Замена goto на адекватный оператор Есть приблизительно такой код (условие всередине нескольких циклов, приводить которые не имеет смысла): metka1: if (Y==i+1) { ... } else { ... f=Y; подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
27.10.2010, 22:58     сортировка столбцов / строк в матрице
Примерно так

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <iostream>
#include <cstdlib>
#include <ctime>
 
void randMatrix(double **matrix, int n, int m, double A, double B);
void reverseCols(double **matrix, int j1, int j2, int n);
void sortCols(double **matrix, int n, int m);
void printMatrix(double **matrix, int n, int m);
 
int main()
{
    int n, m;
    double **matrix;
 
    const double A = -25.0, B = 25.0;
 
    std::cout << "Enter n: ";
    std::cin >> n;
    std::cout << "Enter m: ";
    std::cin >> m;
 
    matrix = new double *[n];
 
    for (int i = 0; i < n; i++)
        matrix[i] = new double [m];
 
    randMatrix(matrix, n, m, A, B);
 
    std::cout << "Matrix:" << std::endl << std::endl;
    printMatrix(matrix, n, m);
 
    sortCols(matrix, n, m);
 
    std::cout << std::endl << std::endl << "Sorted matrix:" << std::endl << std::endl;
    printMatrix(matrix, n, m);
 
    for (int i = 0; i < n; i++)
        delete [] matrix[i];
 
    delete [] matrix;
 
    std::cin.get();
    return 0;
}
 
void randMatrix(double **matrix, int n, int m, double A, double B)
{
    srand(static_cast<unsigned int>(time(NULL)));
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            matrix[i][j] = A + (B - A) * rand() / RAND_MAX;
}
 
void reverseCols(double **matrix, int j1, int j2, int n)
{
    for (int i = 0; i < n; i++)
    {
        double temp = matrix[i][j1];
        matrix[i][j1] = matrix[i][j2];
        matrix[i][j2] = temp;
    }
}
 
void sortCols(double **matrix, int n, int m)
{
    double *sumCols;
 
    sumCols = new double [m];
 
    for (int j = 0; j < m; j++)
    {
        sumCols[j] = 0.0;
 
        for (int i = 0; i < n; i++)
            sumCols[j] += matrix[i][j];
    }
 
    for (int i = 0; i < m; i++)
        for (int j = m - 1; j > i; j--)
            if (sumCols[j - 1] > sumCols[j])
            {
                double temp = sumCols[j - 1];
                sumCols[j - 1] = sumCols[j];
                sumCols[j] = temp;
                reverseCols(matrix, j - 1, j, n);
            }
 
    delete [] sumCols;
}
 
void printMatrix(double **matrix, int n, int m)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            std::cout << matrix[i][j] << "  ";
 
        std::cout << std::endl;
    }
}
 
Текущее время: 23:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru