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

Матрица и функция (Сложение двух матриц функцией sum) - C++

Восстановить пароль Регистрация
 
titanium25
0 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 22
01.05.2013, 15:25     Матрица и функция (Сложение двух матриц функцией sum) #1
Всем привет.
Не получается создать функцию.
Задача:
Сложение двух матриц функцией sum.
Условие:
Размеры матриц указываются только в одном месте в коде (строка 16).
Проблема:
  1. Функция sum не определяет константы column (строка 6 int a[][column], int b[][column]).
  2. Строка 8 - int c[row][column] "Error: выражение должно иметь константное значение."

Просьба указать на ошибки, по возможности исправить код.
Заранее огромное спасибо.
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
#include <iostream>
#include <iomanip>
using namespace std;
 
void sum(int a[][column], int b[][column], const int row, const int column)
{
    int c[row][column];
      for (int i=0; i<row; ++i){
        for (int j=0; j<column; ++j){
        c[i][j]=a[i][j] + b[i][j];}
        }
 
int main()
{
  const int array_row = 2, array_column = 2;
  int a[array_row][array_column], b[array_row][array_column];
  
 
 cout << "Please enter Matrix A variables: ";
    for (int i=0; i<array_row; ++i){
        for (int j=0; j<array_column; ++j)
           cin >> a[i][j]; }
 cout << "Please enter Matrix B variables: ";
    for (int i=0; i<array_row; ++i){
        for (int j=0; j<array_column; ++j)
            cin >> b[i][j]; }
    
  sum(a, b, array_row, array_column);
    
 
        return 0;
}
P.S. Искал похожие темы но что то не получается найти, буду признателен ссылке если подобная тема существует.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2013, 15:25     Матрица и функция (Сложение двух матриц функцией sum)
Посмотрите здесь:

Сложение двух матриц C++
C++ Классы, конструктор, сложение двух матриц
Написать функцию, вычисляющую произведение двух матриц C++
C++ Сложение двух матриц
C++ Сложение двух матриц
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.05.2013, 16:03     Матрица и функция (Сложение двух матриц функцией sum) #2
C++
1
void sum(int a[][column], int b[][column], const int row, const int column)
Так не получится. Либо column должен быть известен на момент компиляции и, следовательно, последний аргумент не нужен. Либо нужно передавать динамические массивы в виде int**, или vector<vector<int>> и т.п.

Добавлено через 4 минуты
В Вашем случае может быть нечто вроде этого:
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
#include <iostream>
#include <iomanip>
using namespace std;
 
const int array_row = 2, array_column = 2;
 
void sum(int a[][array_column], int b[][array_column])
{
    int c[array_row][array_column];
      for (int i=0; i<array_row; ++i){
        for (int j=0; j<array_column; ++j){
        c[i][j]=a[i][j] + b[i][j];
        cout << c[i][j] << " ";
        }
      }
}
 
int main()
{
  int a[array_row][array_column], b[array_row][array_column];
  
 
 cout << "Please enter Matrix A variables: ";
    for (int i=0; i<array_row; ++i){
        for (int j=0; j<array_column; ++j)
           cin >> a[i][j]; }
 cout << "Please enter Matrix B variables: ";
    for (int i=0; i<array_row; ++i){
        for (int j=0; j<array_column; ++j)
            cin >> b[i][j]; }
    
  sum(a, b );
    
        return 0;
}
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
01.05.2013, 16:16     Матрица и функция (Сложение двух матриц функцией sum) #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
#pragma hdrstop
#include <iostream>
#include <fstream>
#include <conio.h>
#include <cstring.h>
#include <string.h>
#include <Windows>
#include <iomanip>
#include <math>
using namespace std;
 
void sum(int a[3][3],int b[3][3])
{
int c[3][3];
for(int i = 0;i<3;i++)
for(int j = 0;j<3;j++)
{
c[i][j]=a[i][j]+b[i][j];
}
 
cout << "Martix C(sum a+b)\n";
for(int i = 0;i<3;i++)
for(int j = 0;j<3;j++)
{
cout << setw(5) <<c[i][j];
if (j==2) cout << "\n";
 
}
}
 
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int a[3][3],b[3][3];
cout << "Matrix A:\n";
    for (int i=0; i<3;i++)
    {
        for (int j=0; j<3;j++)
        cin >> a[i][j];
    }
cout << "Matrix B:\n";
    for (int i=0; i<3;i++)
    {
        for (int j=0; j<3;j++)
        cin >> b[i][j];
    }
 
sum(a,b);
 
 
system("Pause");
}
С тебя +.
 Комментарий модератора 
Запрещено накручивать репутацию и другую статистику пользователя любым способом, включая создание пользователей-клонов, а также склонять (агитировать) других пользователей к ее изменению.
titanium25
0 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 22
01.05.2013, 16:34  [ТС]     Матрица и функция (Сложение двух матриц функцией sum) #4
Спасибо!
Yandex
Объявления
01.05.2013, 16:34     Матрица и функция (Сложение двух матриц функцией sum)
Ответ Создать тему
Опции темы

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