Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Qukish
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 10
#1

Заменить все столбцы на столбец с минимальной суммой элементов (Класс) - C++

13.02.2013, 14:19. Просмотров 549. Ответов 2
Метки нет (Все метки)

дана целочисленная прямоугольная таблица размером m*n.
Заменить все столбцы на столбец с минимальной суммой элементов
Решить через класс на C++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2013, 14:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить все столбцы на столбец с минимальной суммой элементов (Класс) (C++):

Дана Матрица Н(6,5). Найти столбец с минимальной суммой элементов - C++
Дана Матрица Н(6,5). Найти столбец с минимальной суммой элементов Добавлено через 52 секунды не могу сделать подскажите пожалуйста

Подскажите, пожалуйста, почему не работает? (найти столбец с минимальной суммой элементов) - C++
Среди столбцов заданной целочисленной матрицы, которые включают только такие элементы, которые по модулю не больше 10, найти столбец с...

В целочисленной матрице поменять местами столбец с минимальной суммой со столбцом с максимальной суммой - C++
Дана прямоугольная матрица nxm целых чисел (n,m<10 – ввод с клавиатуры, значения элементов массива в диапазоне – вводятся случайным...

В двумерном N*K массиве целых чисел поменять строку с максимальной суммой элементов со строкой с минимальной суммой элементов. - C++
Массив заполнять случайными числами, кроме случаев, когда это нецелесообразно (прогрессия, лабиринт). -В двумерном N*K массиве целых...

все элементы в массиве, кроме 1, нужно заменить суммой предыдущих элементов - C++
Ребят очень нужна помощь имеется задача суть такова : все элементы в массиве, кроме 1, нужно заменить суммой предыдущих элементов,...

Поменять местами столбец матрицы с наибольшей суммой элементов и заданный столбец (результат не выводится) - C++
Задана матрица произвольной размерности. Поменять местами столбец матрицы, имеющий наибольшую сумму элементов,и столбец, номер которого ...

2
igor001
8 / 3 / 1
Регистрация: 12.02.2013
Сообщений: 68
13.02.2013, 14:38 #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
TStringGrid * table = new <TStringGrid*> (Form1);
 
table->RowCount = m;
table->Col count = n;
 
//заполняем таблицу
 
int min = 99999999; //заведомо большее значение чем может быть (лучше максимальное число, которое может вместить используемый тобой тип данных (int, long или long long))
int sum = 0;
int pos = 0;  //искомая колонка
 
for (int col = 0; col < table->ColCount; ++col )
{
     sum = 0;
     for(int row = 0; row < table->RowCount; ++row)
     {
          sum += StrToInt(table->Cells[col][row]);
     }
     if(min > sum)
     {
          min = sum;
          pos = col;
     }
}
//
//циклом копируем значения из найденной колонки в остольные
for (int col = 0; col < table->ColCount; ++col )
{
     for(int row = 0; row < table->RowCount; ++row)
     {
          table->Cells[Col][Row] = table->Cells[pos][Row];
     }
}
0
kuli4ok
32 / 32 / 3
Регистрация: 10.10.2012
Сообщений: 88
13.02.2013, 14:46 #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
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
class matrix
{
private:
    int ** mass;
    int n;
    int m;
public:
    matrix(int _n, int _m)
    {
        n = _n;
        m = _m;
        mass = new int*[n];
        for(int i=0; i<n; i++)
            mass[i] = new int[m];
    }
    ~matrix()
    {
        for(int i=0; i<n; i++)
            delete [] mass[i];
        delete [] mass;
    }
    matrix(const matrix& rhs)
    {
        n = rhs.n;
        m = rhs.m;
        mass = new int*[n];
        for(int i=0; i<n; i++)
            mass[i] = new int[m];
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<n; j++)
                mass[i][j] = rhs.mass[i][j];
        }
    }
    void show()
    {
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
            {
                cout << mass[i][j] << " ";
            }
            cout << "\n";
        }
    }
 
    void get_random(int l)
    {
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
            {
                mass[i][j] = rand()%l;
            }
        }
    }
    void get_user()
    {
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
            {
                cout << "Введите mass[" << i << "][" << j << ": ";
                cin >> mass[i][j];
            }
        }
    }
    int sum(int _m)
    {
        int res = 0;
        for(int i=0; i<n; i++)
        {
            res = res + mass[n-1][_m];
        }
        return res;
    }
    int min_sum()
    {
        int m_save;
        for(int i=1; i<m; i++)
        {
            if(sum(i)<sum(i-1))
                m_save = i;
        }
        return m_save;
    }
    void replacement(int min_m)
    {
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
            {
                if(j == min_m)
                    continue;
                mass[i][j] = mass[i][min_m];
            }
        }
    }
};
 
int main()
{
    srand(time(0));
    int n, m;
    cout << "Введите количество строк и столбцов в матрице через пробел: ";
    cin >> n >> m;
    cout << "Каким методом хотите заполнить матрицу?\n1. Случайными числами\n0. С клавиатуры\nНомер: ";
    int choose;
    cin >> choose;
    matrix mass(n, m);
    if(choose == 1)
    {
        cout << "Укажите одним числом максимально возможное случайное число: ";
        cin >> m;
        mass.get_random(m);
    }
    else
        mass.get_user();
    cout << "Матрица до замены: \n";
    mass.show();
    mass.replacement(mass.min_sum());
    cout << "Матрица после замены: \n";
    mass.show();
    return 0;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2013, 14:46
Привет! Вот еще темы с ответами:

В квадратной целой матрице заменить все нечетные элементы суммой элементов главной диагонали - C++
В квадратной целой матрице заменить все нечетные элементы суммой элементов главной диагонали и вывести результаты. что не так? #include...

Поиск строки с минимальной суммой элементов - C++
int Min() { int sum_min = 0, index =0; for (int i = 0; i &lt; n; i++) { int sum = 0; for (int j = 0; j &lt; m; j++) ...

Найти строку с минимальной суммой элементов - C++
Найти строку с минимальной суммой элементов. Если таких строк несколько то нужн найти номер первой из них! #include &lt;iostream&gt; ...

процедура без глобальных переменных для вывода суммы элементов матрицы и номера строки с минимальной суммой элементов - C++
Задание: составить процедуру без глобальных переменных выполняющуюю для для матрицы D с размерами kхl(k&lt;8 и l&lt; 10) необходимо...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru