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

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

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

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

01.05.2013, 15:25. Просмотров 726. Ответов 3
Метки нет (Все метки)

Всем привет.
Не получается создать функцию.
Задача:
Сложение двух матриц функцией 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++ Напечатать квадрат той из двух матриц, в которой наименьший след (сумма диагональных элементов), считая, что такая матрица одна
Функция sum с переменным числом параметров C++
Сложение двух матриц C++
Произвести сложение двух массивов 5х3 по правилам сложения матриц C++
C++ Сложение, произведение, деление матриц, возведение в степень, обратная матрица
C++ Сложение двух одномерных матриц поэлементно (проверьте код)
Сложение двух матриц 2x2 C++
Реализовать сложение двух заданных матриц C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4384 / 3227 / 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
148 / 135 / 18
Регистрация: 29.07.2012
Сообщений: 709
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)
Ответ Создать тему
Опции темы

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