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

Поэлементное сложение массивов - C++

Восстановить пароль Регистрация
 
Maxachev
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 11
24.01.2014, 15:50     Поэлементное сложение массивов #1
Нужно чтобы 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 "stdafx.h"
#include <iostream>
#include <ctime>
#include <windows.h>
#include <cstdlib>
 
using namespace std;
 
int main()
{
 
    int array1;
    int array2;
    int array;
 
 
    setlocale(0, "");
    srand(unsigned(time(NULL)));
    int N, M;
    cout << "Задай N и M: ";
    cin >> N >> M;
    int ** A = new int *[N];
    for (int i = 0; i < N; i++)
        A[i] = new int[M];
 
    for (int i = 0; i < N; i++)
    for (int j = 0; j < M; j++)
        A[i][j] = ((rand() % 100));
 
 
    cout << "Вот ваш первый массив:" << endl << endl;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
            cout << A[i][j] << " ";
        cout << endl;
    }
 
 
 
    setlocale(0, "");
    srand(unsigned(time(NULL)));
    int K, L;
    cout << "Напиши числа: ";
    cin >> K >> L;
    int ** B = new int *[K];
    for (int i = 0; i < N; i++)
        B[i] = new int[L];
 
    for (int i = 0; i < K; i++)
    for (int j = 0; j < L; j++)
        B[i][j] = ((rand() % 100));
 
 
    cout << "Вот второй массив:" << endl << endl;
    for (int i = 0; i < K; i++)
    {
        for (int j = 0; j < L; j++)
            cout << B[i][j] << " ";
        cout << endl;
    }
 
 
// здесь ерунда дальше
    array1 = A[N][M]; 
    array2 = B[K][L];
    {
        cout << "Сложение :" << endl;
        array = array1 + array2; 
        cout << array;
    }
 
       system("pause");
 
}
После ввода массивов выдает ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2014, 15:50     Поэлементное сложение массивов
Посмотрите здесь:

C++ Сложение и присвоение массивов
C++ сложение двумерных массивов
C++ Сложение двух массивов.
C++ Сложение двух массивов
C++ сложение массивов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
24.01.2014, 16:17     Поэлементное сложение массивов #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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main()
{
    std::srand((size_t)(std::time)(nullptr));
 
    size_t arraysSize;
    std::cout << "N: ";
    std::cin >> arraysSize;
 
    int *firstArray = new int[arraysSize];
    std::cout << "First array : ";
    for (size_t i = 0; i < arraysSize; i++) {
        std::cout << std::setw(5) << (firstArray[i] = std::rand() % 11 + 1);
    }
    std::cout << std::endl;
 
    int *secondArray = new int[arraysSize];
    std::cout << "Second array: ";
    for (size_t i = 0; i < arraysSize; i++) {
        std::cout << std::setw(5) << (secondArray[i] = std::rand() % 11 + 1);
    }
    std::cout << std::endl;
 
    int *thirdArray = new int [arraysSize];
    std::cout << "Third array : ";
    for (size_t i = 0; i < arraysSize; i++) {
        std::cout << std::setw(5) << (thirdArray[i] = firstArray[i] + secondArray[i]);
    }
    std::cout << std::endl;
 
    delete [] firstArray;
    firstArray = nullptr;
 
    delete [] secondArray;
    secondArray = nullptr;
 
    delete [] thirdArray;
    thirdArray = nullptr;
 
    std::system("pause");
    return 0;
}
some_name
Вежливость-главное оружие
 Аватар для some_name
219 / 219 / 55
Регистрация: 19.02.2013
Сообщений: 1,419
24.01.2014, 16:42     Поэлементное сложение массивов #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
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <windows.h>
#include <cstdlib>
 
using namespace std;
 
int ** matrix_constructor(int w, int h);
 
void matrix_print(int ** matrix, int w, int h);
 
void matrix_fill(int **matrix, int w, int h); 
 
void matrix_destructor(int **matrix);
 
int main()
{ 
    setlocale(0, "ru");
 
 
    /*Create a first array*/
    int N, M;
    cout << "Задай N и M: "; cin >> N >> M;
    int ** A = 
        matrix_constructor(N, M);    
    matrix_fill(A, N, M);   
    matrix_print(A, N, M);
 
    /*Create a second array*/
    int K, L;
    cout << "Задай K и L: "; cin >> K >> L;
    int ** B = 
        matrix_constructor(K, L);
    matrix_fill(B, K, L);   
    matrix_print(B, K, L);
 
    /*Calculate summ of two array*/
    int Wmin = K < N ? K : N,       
        Hmin = L < M ? L : N;   
 
    int ** R =  matrix_constructor(Wmin, Hmin);
 
    for (int i = 0; i < Wmin; ++i)
        for (int j = 0; j < Hmin; ++j)      
            R[i][j] = A[i][j] + B[i][j];        
 
    matrix_print(R, Wmin, Hmin);
 
    matrix_destructor(A, N);
    matrix_destructor(B, K);
    matrix_destructor(R, Wmin);
 
    system("pause");
    return 0;
}
 
int ** matrix_constructor(int w, int h)
{
    int ** matrix_new = new int *[w];
 
    for (int i = 0; i < w; ++i)
        matrix_new[i] = new int[h];
 
    return matrix_new;
}
 
void matrix_print(int ** matrix, int w, int h)
{
    cout << "Ваш массив : " << endl << endl;
    for (int i = 0; i < w; ++i)
    {
        for (int j = 0; j < h; ++j)
            cout << matrix[i][j] << " ";
        cout << endl;
    }
}
 
void matrix_fill(int **matrix, int w, int h)
{
    srand(unsigned(time(NULL)));
 
    for (int i = 0; i < w; ++i)
        for (int j = 0; j < h; ++j)
            matrix[i][j] = ((rand() % 100));
}
 
void matrix_destructor(int **matrix, int w)
{
    for (int i = 0; i < w; i++)
        delete[] matrix[i];
    delete[] matrix;    
}


Как я понял из кода, вы складывали матрицы;
Но тогда зачем вам вводить размерности их, ведь они должны совпадать.
Я чуток подправил, в качестве суммы вычисляется сумма элементов матрц, минимальной размерности.

Может пригодится.
Maxachev
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 11
24.01.2014, 17:02  [ТС]     Поэлементное сложение массивов #4
Спасибо огромное за помощь
Yandex
Объявления
24.01.2014, 17:02     Поэлементное сложение массивов
Ответ Создать тему
Опции темы

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