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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
#1

Характеристики столбцов целочисленной матрицы - C++

24.05.2012, 19:34. Просмотров 641. Ответов 3
Метки нет (Все метки)

Характеристикой столбца целочисленной матрицы назовём сумму модулей его отрицательных нечётных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик.

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
#include "stdafx.h"
#include <iostream.h>
#include<windows.h>
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
void main()
{
    int const n = 3;
    int mas[n][n];
    cout << Rus("Ââåäèòå Г¬Г*Г±Г±ГЁГў: ");
    cout << "\n";
 
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
        {
            cout << Rus("Ââåäèòå ýëåìåГ*ГІ[") << i << ("][") << j << ("]: ");
            cin >> mas[i][j];
        }
 
        cout << "\n";
 
        int m[n];
        for(i = 0; i < n; i++)
        {
            m[i] = 0;
            for(int j = 1; j < n; j += 2)
            {
                if(mas[j][i] < 0)
                m[i] += abs(mas[j][i]);
 
            }
        }
 
        cout <<Rus("ГЊГ*Г±Г±ГЁГў ГµГ*Г°Г*êòåðèñòèê: ");
        for(i = 0; i < n; i++)
            cout << m[i] << " ";
 
        cout << "\n";
 
        int t = 0, index;;
        for(int k = 0; k < n; k++)
        {
            for(int p = k + 1; p < n; p++)
            {
                if(m[k] > m[p])
                {
                    t = m[p];
                    m[p] = m[k];
                    index = k;
                    m[k] = t;
                }
            }
 
            cout << index << " ";
        }
 
        cout << "\n";
 
        cout << Rus("ГЊГ*Г±Г±ГЁГў ГµГ*Г°Г*êòåðèñòèê ГЇГ® âîçðГ*Г±ГІГ*Г*ГЁГѕ: ");
        for(k = 0; k < n; k++)
            cout << m[k] << " ";
 
        cout << "\n";
}
я застрял на получении индексов столбцов... не пойму что не так делаю... расположение их по возрастанию сделал, а индексы не могу получить, и пока даже не могу понять как потом менять столбцы в исходной матрицу... заранее благодарю)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2012, 19:34     Характеристики столбцов целочисленной матрицы
Посмотрите здесь:

C++ В заданной целочисленной матрице поменять местами столбец с номером 1 и последний из столбцов
Динамический массив. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы C++
C++ В заданной целочисленной матрице поменять местами столбец с номером 1 и последний из столбцов
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, распол C++
Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) C++
C++ Проверить, образуют ли характеристики столбцов строго убывающую последовательность.
C++ Ввод с клавы размера целочисленной матрицы, а затем самой матрицы. Найти наибольший элемент. Разрешается использовать только один оператор цикла
Среди столбцов заданной целочисленной матрицы, заполненной случайными числами, порядка n* n, найти столбец с элементами C++
C++ Преобразование целочисленной матрицы
C++ Транспонирование целочисленной матрицы с++
Вывести на экран номера столбцов матрицы, сумма которых превышает заданную величину, и число таких столбцов C++
C++ В целочисленной матрице упорядочить элементы столбцов по количеству цифр, содержащихся в их записи

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
24.05.2012, 20:06     Характеристики столбцов целочисленной матрицы #2
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
#include <iostream>
#include <locale>
#include <iomanip>
using namespace std;
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
    int n;
    cout << "Введите размер матрицы: ";
    cin >> n;
    int **v = new int*[n];
    for (int i = 0; i < n; ++i)
    {
        v[i] = new int[n];
    }
 
    cout << "Введите массив:" << endl;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            cout << "Введите элемент[" << i+1 << "][" << j+1 << "]: ";
            cin >> v[j][i];
        }
    }
 
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            cout << setw(3) << v[j][i] << ' ';
        }
        cout << endl;
    }
 
    int *m = new int[n];
    for (int i = 0; i < n; ++i)
    {
        m[i] = 0;
        for (int j = 0; j < n; ++j)
        {
            if(v[i][j] < 0 && v[i][j] % 2)
                m[i] += abs(v[i][j]);
        }
    }
 
    cout << "Массив характеристик:" << endl;
    for(int i = 0; i < n; ++i)
        cout << setw(3) << m[i] << ' ';
    cout << endl;
 
    for (int i = 0; i < n - 1; ++i) 
    { 
        for (int j = 0; j < n - i - 1; ++j) 
        {  
            if (m[j] > m[j+1])
            {
                swap(m[j], m[j + 1]);
                swap(v[j], v[j + 1]);
            }
        }
    }
 
    cout << "Массив по возрастанию характеристик:" << endl;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            cout << setw(3) << v[j][i] << ' ';
        }
        cout << endl;
    }
    return 0;
}
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
24.05.2012, 20:30  [ТС]     Характеристики столбцов целочисленной матрицы #3
я не могу понять что делает вот эта часть:
C++
1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < n - 1; ++i) 
    { 
        for (int j = 0; j < n - i - 1; ++j) 
        {  
            if (m[j] > m[j+1])
            {
                swap(m[j], m[j + 1]);
                swap(v[j], v[j + 1]);
            }
        }
    }
А именно swap...
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
24.05.2012, 20:48     Характеристики столбцов целочисленной матрицы #4
Функция swap(a, b) меняет местами значения переменных a и b.
C++
1
2
3
4
5
template <class T> 
void swap( T& a, T& b )
{
  T c(a); a=b; b=c;
}
можете заменить ток кусок кода на
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0; i < n - 1; ++i) 
    { 
        for (int j = 0; j < n - i - 1; ++j) 
        {  
            if (m[j] > m[j+1])
            {
                int t1 = m[j];
                m[j + 1] = m[j];
                m[j] = t1;
                int *t2 = v[j];
                v[j + 1] = v[j];
                v[j] = t2;
            }
        }
    }
Добавлено через 4 минуты
Цитата Сообщение от yoghurt92 Посмотреть сообщение
я не могу понять что делает вот эта часть:
Переставляет столбцы заданной матрицы, в соответствии с ростом характеристик.
Yandex
Объявления
24.05.2012, 20:48     Характеристики столбцов целочисленной матрицы
Ответ Создать тему
Опции темы

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