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

В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца - C++

Войти
Регистрация
Восстановить пароль
 
Алина1234
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 38
08.07.2015, 10:01     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца #1
Решить задачу: в прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2015, 10:01     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца
Посмотрите здесь:

Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания C++
Двумерные массивы. Разделить элементы каждого столбца на последний элемент столбца C++
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. C++
C++ Вывести сумму каждого столбца в матрице
Сформировать B, элементы которого Bj равны 1, если хотя бы один элемент j-го столбца матрицы A больше суммы элементов этого столбца... C++
C++ Разделить элементы каждого столбца заданной матрицы на последний элемент столбца
В каждом столбце прямоугольной матрицы заменить элементы меньше среднего арифмитического этого столбца нулевым значением C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Doddger
9 / 12 / 3
Регистрация: 24.09.2014
Сообщений: 75
08.07.2015, 15:26     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца #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
#include <iostream>
using namespace std;
#include <cstdlib>
#include <ctime>
 
int main()
{
    int i, j, strk, stlb, sum_stlb = 0;
    cout << "Кол-во строк: ";
    cin >> strk;
    cout << "Кол-во столбцов: ";
    cin >> stlb;
    int mass[strk][stlb], tmp_mass[strk][stlb];
    srand((unsigned)time(NULL));
    cout << "Исходный массив:\n";
    for(i = 0; i < strk; i++)
        for(j = 0; j < stlb; j++){
            mass[i][j] = rand()%10;
            tmp_mass[i][j] = mass[i][j];
            cout << mass[i][j] << (j == (stlb - 1) ? "\n" : " ");
        }
    for(j = 0; j < stlb; j++){
        sum_stlb = 0;
        for(i = 0; i < strk; i++){
           sum_stlb += tmp_mass[i][j];
        }
        for(i = 0; i < strk; i++){
           mass[i][j] = sum_stlb;
        }
    }
    cout << "Массив после замены:\n";
    for(i = 0; i < strk; i++)
        for(j = 0; j < stlb; j++){
            cout << mass[i][j] << (j == (stlb - 1) ? "\n" : " ");
        }
    return 0;
}
Алина1234
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 38
09.07.2015, 09:59  [ТС]     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца #3
Что мне с этим делать?
Миниатюры
В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца  
Doddger
9 / 12 / 3
Регистрация: 24.09.2014
Сообщений: 75
09.07.2015, 10:23     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца #4
Я компилировал на gcc, всё работает:
Миниатюры
В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца  
Алина1234
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 38
09.07.2015, 10:38  [ТС]     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца #5
А у меня на Visual Studio 2010 не работает Может там поменять что нужно?
Doddger
9 / 12 / 3
Регистрация: 24.09.2014
Сообщений: 75
09.07.2015, 12:35     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца #6
Погуглил - дело в том, что MVS 2010 не поддерживает стандарт языка С99, начиная с которого введены массивы переменной длины. Короче, надо под массив выделять память динамически:
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
#include <iostream>
using namespace std;
#include <cstdlib>
#include <ctime>
 
int main()
{
    int i, j, strk, stlb, sum_stlb = 0;
    cout << "Кол-во строк: ";
    cin >> strk;
    cout << "Кол-во столбцов: ";
    cin >> stlb;
    int **mass = new int*[strk];
    int **tmp_mass = new int*[strk];
    for(i = 0; i < strk; i++){
        mass[i] = new int[stlb];
        tmp_mass[i] = new int[stlb];
    }
    srand((unsigned)time(NULL));
    cout << "Исходный массив:\n";
    for(i = 0; i < strk; i++)
        for(j = 0; j < stlb; j++){
            mass[i][j] = rand()%10;
            tmp_mass[i][j] = mass[i][j];
            cout << mass[i][j] << (j == (stlb - 1) ? "\n" : " ");
        }
    for(j = 0; j < stlb; j++){
        sum_stlb = 0;
        for(i = 0; i < strk; i++){
           sum_stlb += tmp_mass[i][j];
        }
        for(i = 0; i < strk; i++){
           mass[i][j] = sum_stlb;
        }
    }
    cout << "Массив после замены:\n";
    for(i = 0; i < strk; i++)
        for(j = 0; j < stlb; j++){
            cout << mass[i][j] << (j == (stlb - 1) ? "\n" : " ");
        }
    for(i = 0; i < strk; i++){
        delete []mass[i];
        delete []tmp_mass[i];
    }
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2015, 13:29     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца
Еще ссылки по теме:

Определить сумму элементов каждого столбца левой половины и сумму элементов каждого четного столбца правой половины матрицы A C++
C++ Для каждого столбца прямоугольной матрицы подсчитать сумму входящих в него элементов
C++ В матрице заменить каждый диагональный элемент на сумму всех других элементов столбца
Задана матрица A(n,n). Первый элемент каждого четного столбца заменить суммой простых чисел этого столбца, пер C++

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

Или воспользуйтесь поиском по форуму:
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
09.07.2015, 13:29     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца #7
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
#include <iostream>
#include <iomanip>
using namespace std;
 
int main ()
{
    int const N = 4;
    int matrix[N][N] = 
    {
        {1,1,1,1},
        {2,2,2,2},
        {3,3,3,3},
        {1,2,3,4}
    };
    int sum[N] = {0};
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            sum[i]+=matrix[j][i];
            if (i > 0)
                matrix[j][i - 1] = sum[i - 1];
        }
    }
    cout.setf (ios::left);
    for (int i = 0; i < N; i++)
    {
        matrix[i][N - 1] = sum[N - 1];
        for (int j = 0; j < N; j++)
            cout << setw (3) << matrix[i][j];
        cout << endl;
    }
}
Yandex
Объявления
09.07.2015, 13:29     В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца
Ответ Создать тему
Опции темы

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