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

Массив: В матрице из действительных чисел найти сумму элементов в каждом столбике. - C++

Восстановить пароль Регистрация
 
mugen0202
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
06.06.2013, 21:52     Массив: В матрице из действительных чисел найти сумму элементов в каждом столбике. #1
Помогите пожалуйста написать программу на двумерный динамический массив с использованием функций пользователя.
Условие:
"В матрице из действительных чисел найти сумму элементов в каждом столбике. Результат записать в одномерный массив. Вывести начальную матрицу и полученный одномерный массив на экран. Составить блок-схему."
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 21:52     Массив: В матрице из действительных чисел найти сумму элементов в каждом столбике.
Посмотрите здесь:

C++ С++ Дан двумерный массив целых чисел. В каждом столбце найти сумму и количество нечетных чисел.
C++ Дано двумерный массив целых чисел. В каждом столбце найти сумму и количество чисел.(исправить)
C++ Дан массив действительных чисел. Найти сумму элементов с четными номерами и произведение элементов с нечетными номерами
C++ Массив: Найти сумму элементов динамического масива действительных чисел
C++ В матрице из действительных чисел найти сумму элементов в каждом столбике
Даны линейный массив действительных чисел. Вычислить сумму последнего и минимального элементов массива C++
В матрице К размером m*n найти в каждом столбце произведение отрицательных элементов и количество нулевых элементов в матрице C++
В матрице найти наименьший элемент в каждом столбце под побочной диагональю и подсчитать сумму этих элементов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UranFlex
131 / 129 / 21
Регистрация: 25.05.2013
Сообщений: 233
07.06.2013, 03: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
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
//============================================================================
// Name        : matrix_col_sum.cpp
// Author      : UranFlex
// Version     : 0.1 alpha
// Copyright   : GNU GPL
// Description : Динамические массивы. В матрице из действительных чисел найти сумму элементов в каждом столбике.
//               Результат записать в одномерный массив. Вывести начальную матрицу и полученный одномерный массив на экран.
//               C++, Ansi-style
//============================================================================
 
#include <iostream>
#include <ctime>
#include <cmath>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
// функция заполняет динамический двумерный массив псевдослучайными данными
void FillArray( double** array, const int rows, const int cols, const unsigned randRange = 101, const double shift = -50,
        const double koef = 10 );
// функция выводит на экран динамический двумерный массив
void PrintArray( double** array, const int rows, const int cols );
// функция выводит на экран одномерный массив
void PrintRow( double* row, const int sz );
// функция считает сумму элементов каждого столбца двумерного динамического массива
// и сохраняет результат в одномерный массив
void CalcSumCol( double** array, double* row, const int rows, const int cols );
 
int main() {
 
    srand( time( 0 ) ); // засеять генератор случайных чисел
 
    int rows, cols; // переменные для хранения количества строк и столбцов матрицы соответсвенно
    // получаем от пользователя данные матрицы
    cout << "Введите количество строк и количество столбцов матрицы" << endl;
    cin >> rows >> cols;
 
    // создаем матрицу
    // организация двумерного динамического массива производится в два этапа
    // сначала создаётся одномерный массив указателей, а затем в цикле каждому элементу этого массива присваивается адрес одномерного массива
    double** matrix = new double*[ rows ];
    for ( int i = 0; i < rows; ++i )
        matrix[ i ] = new double[ cols ];
 
    // заполняем матрицу псевдослучайными значениями типа int
    FillArray( matrix, rows, cols );
 
    // выводим матрицу на экран
    cout << "Исходная матрица:" << endl;
    PrintArray( matrix, rows, cols );
 
    // создаем одномерный массив для записи в него результатов суммы элементов каждого столбца.
    // соответсвенно размер нового массива будет равен количеству столбцов матрицы.
    double* arrSum = new double[ cols ];
 
    // считаем сумму элементов каждого столбца двумерного динамического массива и сохраняем результат в одномерный массив
    CalcSumCol( matrix, arrSum, rows, cols );
 
    // выводим массив с суммами на экран
    cout << "Суммы столбцов матрицы:" << endl;
    PrintRow( arrSum, cols );
 
    // уничтожаем одномерный массив.
    delete[] arrSum;
 
    // последовательное уничтожение двумерного массива происходит в обратном порядке
    // сначала в цикле уничтожаются одномерные массивы ( непосредственно сами строки двумерного ),
    // а затем уничтожается массив указателей на строки.
    for ( int i = 0; i < rows; ++i )
        delete[] matrix[ i ];
    delete[] matrix;
 
    return 0;
}
 
void FillArray( double** array, const int rows, const int cols, const unsigned randRange, const double shift, const double koef ) {
    for ( int i = 0; i < rows; ++i )
        for ( int j = 0; j < cols; ++j )
            // заполняем двумерный массив псевдослучайными данными.
            // shift - начальное значение диапазона данных
            // randRange - ширина диапазона
            // koef - делитель для псевдослучаного значения, так как у нас действительные числа.
            array[ i ][ j ] = ( shift + rand() % randRange ) / koef;
}
 
void PrintArray( double** array, const int rows, const int cols ) {
    for ( int i = 0; i < rows; ++i )
        PrintRow( ( array[ i ] ), cols );
}
 
void PrintRow( double* row, const int sz ) {
    for ( int j = 0; j < sz; ++j )
        cout << setw( 6 ) << setprecision( 2 ) << ( row[ j ] );
 
    cout << endl;
 
}
 
void CalcSumCol( double** array, double* row, const int rows, const int cols ) {
    for ( int j = 0; j < cols; ++j ){
        row[ j ] = 0;
        for ( int i = 0; i < rows; ++i )
            row[ j ] += array[ i ][ j ];
    }
}
Yandex
Объявления
07.06.2013, 03:26     Массив: В матрице из действительных чисел найти сумму элементов в каждом столбике.
Ответ Создать тему
Опции темы

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