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

Функция сложения матриц - C++

Восстановить пароль Регистрация
 
Shef4u
15 / 15 / 0
Регистрация: 31.10.2011
Сообщений: 116
19.11.2012, 16:17     Функция сложения матриц #1
привет. Вот написал ф-цию но не могу разобраться что она должна возвращать?
Код
#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#pragma argsused
int matrix()
{
int a[4][3]={3,4,6,7,4,7,8,3,3,4,6,8};
for (int i=0; i<4; ++i)
{ for(int j=0; j<3; ++j)
cout<<setw(3)<<a[i][j];
cout<<endl;}
cout<<endl;
int b[4][3]={3,4,6,7,4,7,8,3,3,4,6,8};
int c[4][3];
for (int i=0; i<4; ++i)
{ for(int j=0; j<3; ++j)
cout<<setw(3)<<b[i][j];
cout<<endl;}
cout<<endl;
for (int i=0; i<4; ++i)
{ for(int j=0; j<3; ++j)
{c[i][j]=a[i][j]+b[i][j];
cout<<setw(3)<<c[i][j];}
cout<<endl;}

  return  //???? 
}
int main(int argc, char* argv[])
{  int n,matrix;
n=matrix;
cout<<endl<<n;


getch();
        return 0;
}
подскажите, пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoonGuard
12 / 12 / 0
Регистрация: 05.04.2012
Сообщений: 127
19.11.2012, 16:20     Функция сложения матриц #2
void, если у тебя всё в самой функции выводится.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
19.11.2012, 16:23     Функция сложения матриц #3
возвращать должна матрицу c[4][3];
Хотя по коду все делается в одной ф-ции. Так что можно поставить void Matrix() и ничего не возвращать.
Говоря о записи матрицы, у вас - двумерный массив, в котором заполнена лишь одна строка.

Либо заполняйте остальное, либо делайте так

C++
1
2
3
4
5
6
7
    int a[4][3]=
    {
        {3,4,6},
        {7,4,7},
        {8,3,3},
        {4,6,8}
    };
Shef4u
15 / 15 / 0
Регистрация: 31.10.2011
Сообщений: 116
19.11.2012, 16:28  [ТС]     Функция сложения матриц #4
Цитата Сообщение от Afflicted Посмотреть сообщение
возвращать должна матрицу c[4][3];
Хотя по коду все делается в одной ф-ции. Так что можно поставить void Matrix() и ничего не возвращать.
Говоря о записи матрицы, у вас - двумерный массив, в котором заполнена лишь одна строка.

Либо заполняйте остальное, либо делайте так

C++
1
2
3
4
5
6
7
    int a[4][3]=
    {
        {3,4,6},
        {7,4,7},
        {8,3,3},
        {4,6,8}
    };
ну у меня задание такое: напишите ф-цию для сложения матриц. Просто так запустить в main я могу и все работает, а вот с функцией - проблема.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
19.11.2012, 16:32     Функция сложения матриц #5
А что с ней проблемного? Передайте в нее параметры и все.

void (int arr1[n][m], int arr2[n][m])

где n и m - кол-во строк и элементов в строке соответственно.
Shef4u
15 / 15 / 0
Регистрация: 31.10.2011
Сообщений: 116
19.11.2012, 16:37  [ТС]     Функция сложения матриц #6
Цитата Сообщение от Afflicted Посмотреть сообщение
А что с ней проблемного? Передайте в нее параметры и все.

void (int arr1[n][m], int arr2[n][m])

где n и m - кол-во строк и элементов в строке соответственно.
я запутался с этими функциями. Вы бы не могли, пожалуйста, исправить мой код чтобы я увидел свою ошибку? ну я понял что надо написать void matrix() тогда не надо будет в конце ф-ции писать return так как ей нет что возвращать, но что тогда писать в main ???
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
19.11.2012, 17:09     Функция сложения матриц #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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
int const m = 4, n = 3;
 
void matrix(int a[m][n], int b[m][n])
{
    int c[m][n];
 
    for (int i=0; i<4; ++i)
    {
        for(int j=0; j<3; ++j)
            cout<<setw(3)<<a[i][j];
        cout<<endl;
    }
 
    cout<<endl;
 
    for (int i=0; i<4; ++i)
    {
        for(int j=0; j<3; ++j)
            cout<<setw(3)<<b[i][j];
        cout<<endl;
    }
 
    cout<<endl;
 
    for (int i=0; i<4; ++i)
    {
        for(int j=0; j<3; ++j)
        {
            c[i][j]=a[i][j]+b[i][j];
            cout<<setw(3)<<c[i][j];
        }
    cout<<endl;}
}
 
int main()
{
    int a[4][3]=
    {
        3,4,6,7,
        4,7,8,3,
        3,4,6,8
    };
 
    int b[4][3]=
    {
        3,4,6,7,
        4,7,8,3,
        3,4,6,8
    };
 
    matrix(a, b);
    cout<<endl<<n;
 
 
    _getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2012, 17:42     Функция сложения матриц
Еще ссылки по теме:

C++ Наследование, нахождения произведения и сложения матриц
C++ Функция сложения матриц
Операция сложения матриц C++

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

Или воспользуйтесь поиском по форуму:
Shef4u
15 / 15 / 0
Регистрация: 31.10.2011
Сообщений: 116
19.11.2012, 17:42  [ТС]     Функция сложения матриц #8
Цитата Сообщение от Afflicted Посмотреть сообщение
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
int const m = 4, n = 3;
 
void matrix(int a[m][n], int b[m][n])
{
    int c[m][n];
 
    for (int i=0; i<4; ++i)
    {
        for(int j=0; j<3; ++j)
            cout<<setw(3)<<a[i][j];
        cout<<endl;
    }
 
    cout<<endl;
 
    for (int i=0; i<4; ++i)
    {
        for(int j=0; j<3; ++j)
            cout<<setw(3)<<b[i][j];
        cout<<endl;
    }
 
    cout<<endl;
 
    for (int i=0; i<4; ++i)
    {
        for(int j=0; j<3; ++j)
        {
            c[i][j]=a[i][j]+b[i][j];
            cout<<setw(3)<<c[i][j];
        }
    cout<<endl;}
}
 
int main()
{
    int a[4][3]=
    {
        3,4,6,7,
        4,7,8,3,
        3,4,6,8
    };
 
    int b[4][3]=
    {
        3,4,6,7,
        4,7,8,3,
        3,4,6,8
    };
 
    matrix(a, b);
    cout<<endl<<n;
 
 
    _getch();
    return 0;
}
так вот оно что. спасибо!! а если например я хочу матрицу b взять как транспонованную (ну тоисть повернуть на 90 градусов) то можно это как то легко сделать или надо в циклах менять местами элементы?
Yandex
Объявления
19.11.2012, 17:42     Функция сложения матриц
Ответ Создать тему
Опции темы

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