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

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

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

Консольная программа для сложения двух матриц - C++

31.10.2015, 14:55. Просмотров 289. Ответов 2
Метки нет (Все метки)

Нужна помощь от продвинутых ребят. Я в С++ полный 0, и пока все методом тыка.
Мне была дана программа-пример, которую нужно было изменить для решения моей задачи.
Пример

Написать функцию для обнуления элементов матрицы, лежащих ниже главной диагонали.
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
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
 
int form(int a[][100])
{
int n;
cout<<"\nEnter n: ";
cin>>n;
srand((unsigned)time(NULL));
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
a[i][j]=rand()%100;
return n;
}
 
void print(int a[][100], int n)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout << a[i][j] << "\t";
cout << "\n";
}
cout << "\n";
}
 
void obnul(int a[][100], int n)
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if (j<i) a[i][j]=0;
}
int main()
{
int C[100][100];
int N=form(C);
cout << "Source matrix:\n";
print(C,N);
obnul(C,N);
cout << "Result:\n";
print(C,N);
}

Но так как я полный 0, я только добавил лишнего и запутался что к чему и почему.
В итоге у меня получилось
это
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int form1(int a[][100])
{
    int n;
    cout<<"\nEnter n: ";
    cin>>n;
    srand((unsigned) time(NULL));
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
    a[i][j]=rand()%100;
    return n;
}
 
int form2(int b[][100])
{
    int l;
    cout<<"\nEnter l: ";
    cin>>l;
    srand((unsigned) time(NULL));
    for(int i=0; i<l; i++)
        for(int j=0; j<l; j++)
    b[i][j]=rand()%100;
    return l;
}
 
void print(int a[][100], int n)
{
    for(int i=0; i<n;i++)
    {
        for(int j=0; j<n; j++)
         cout << a[i][j] << "\t";
        cout << "\n";
    }
    cout<< "\n";
}
 
void msum(int a[][100], int b[][100], int c[][100], int n)
{
    for(int i=0;i<n; i++)
        for(int j=0; j<n;j++)
     c[i][j] = a[i][j] + b[i][j];
}
 
int main()
{
  int A[100][100];
  int B[100][100];
  int C[100][100];
  int N=form(B);
  N=form(A);
  cout<<"Source matrix:\n";
  print(A,N);
  print(B,N);
  msum(A,N);
  cout <<"Result:\n";
  print(A,N);
}

Получил ошибки в msum и main
Прошу объяснить как правильно изменить код, какие строки лишние и какие нужно добавить. Хочу разобраться как тут все устроено, но вот у самого не получается.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2015, 14:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Консольная программа для сложения двух матриц (C++):

Матрицы: сложения двух матриц (двумерных массивов) - C++
Необходимо написать программу сложения двух матриц (двумерных массивов) на языке СИ++. Даны матрицы A и B. Надо их объявить и заполнить...

Написать программу сложения двух матриц А и В размерами 4 на 5 - C++
уСЛОВИЕ: Написать программу сложения двух матриц А и В размерами 4 на 5. Найти суммы элементов получившейся матрицы по столбцам. И...

Произвести сложение двух массивов 5х3 по правилам сложения матриц - C++
Произвести сложение двух массивов 5х3 по правилам сложения матриц. Не могу решить помогите с решением. Зарание спасибо. :)

Найти количество чётных отрицательных элементов в матрице, полученной из сложения двух заданных матриц - C++
3. Даны целочисленные матрицы А(mxn) и В(mxn). Программа находит количество четных отрицательных элементов в матрице С=А+В , выводит на...

Перегрузка сложения для двумерных матриц - C++
Имеется класс для работы с матрицами размера 3 на 3: class Matrix{ private: int aMas ; public: Matrix(){} void...

Написать класс для сложения матриц - C++
Надо написать класс который будет складывать матрицы. Не могу грамотно закончить программу. Не знаю как передать результат в главную...

2
AlexKolc
118 / 159 / 67
Регистрация: 14.09.2013
Сообщений: 302
31.10.2015, 15:32 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Hancer,
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
void/*int*/ form(int a[][100], int n) {
    //int n; //Думаю n можно ввести в main
    //cout<<"\nEnter n: "; // т.к. складывать можно матрицы только    
    //cin>>n; // одинаковой размерности
    srand((unsigned) time(NULL));
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
            a[i][j]=rand()%100;
    //return n;
}
//Зачем для каждой матрицы создавать свою форму? 
/*int form2(int b[][100])
{
    int l;
    cout<<"\nEnter l: ";
    cin>>l;
    srand((unsigned) time(NULL));
    for(int i=0; i<l; i++)
        for(int j=0; j<l; j++)
    b[i][j]=rand()%100;
    return l;
}*/
 
void print(int a[][100], int n) {
    for(int i=0; i<n;i++) {
        for(int j=0; j<n; j++)
            cout << a[i][j] << "\t";
        cout << "\n";
    }
    cout<< "\n";
}
 
void msum(int a[][100], int b[][100], int c[][100], int n) {
    for(int i=0;i<n; i++)
        for(int j=0; j<n;j++)
            c[i][j] = a[i][j] + b[i][j];
}
 
int main() {
    int A[100][100];
    int B[100][100];
    int C[100][100];
    int N;
    cout << "Enter N: ";
    cin >> N;
    /*int N=*/form(B, N);
    /*N=*/form(A, N);
    cout << "Source matrix A:\n";
    print(A,N);
    cout << "Source matrix B:\n";
    print(B,N);
    //msum(A,N); Ваша функция должна принимать 4 аргумента, 
    //а вы посылаете только 2?
    msum(A, B, C, N);
    cout <<"Result:\n";
    // print(A, N); Почему выводите А если результат в С?
    print(C, N); 
}
0
Hancer
0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 4
31.10.2015, 16:04  [ТС] #3
спс за оперативный ответ, понял в чем ошибки и что кучу лишнего кода бессмысленного... крч еще очень много штудировать нужно мне=)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2015, 16:04
Привет! Вот еще темы с ответами:

Функция для сложения и вычитания вещественных матриц - C++
Помогите пожалуйста с задачами. Никогда с такими не сталкивался поэтому нужна помощь. Буду благодарен за всё, чем сможете помочь, будь то...

Классы (программа сложения двух произвольных чисел) - C++
Написать программу сложения двух произвольных чисел: #include &lt;vcl.h&gt; #include &lt;iostream.h&gt; #pragma hdrstop ...

Написать и протестировать функцию для сложения и вычитания вещественных матриц - C++
помогите пожалуйста с двумя задачками: 1.Написать и протестировать функцию, переставляющую в обратном порядке элементы главной диагонали...

Консольная программа для запуска экзешника с определенным параметром - C++
Друзья, я неочень разбираюсь в програмировании, хоть и пытаюсь учить это:)) Мне надо программа(батник протстой или консольное...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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