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

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

Восстановить пароль Регистрация
 
Hancer
0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 4
31.10.2015, 14:55     Консольная программа для сложения двух матриц #1
Нужна помощь от продвинутых ребят. Я в С++ полный 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
Прошу объяснить как правильно изменить код, какие строки лишние и какие нужно добавить. Хочу разобраться как тут все устроено, но вот у самого не получается.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2015, 14:55     Консольная программа для сложения двух матриц
Посмотрите здесь:

C++ Написать программу сложения двух матриц А и В размерами 4 на 5
Функция для сложения и вычитания вещественных матриц C++
C++ Написать и протестировать функцию для сложения и вычитания вещественных матриц
Консольная программа для запуска экзешника с определенным параметром C++
Перегрузка сложения для двумерных матриц C++
C++ Матрицы: сложения двух матриц (двумерных массивов)
C++ Классы (программа сложения двух произвольных чисел)
Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц C++
Произвести сложение двух массивов 5х3 по правилам сложения матриц C++
Найти количество чётных отрицательных элементов в матрице, полученной из сложения двух заданных матриц C++
Написать функцию для сложения двух чисел C++
Написать класс для сложения матриц C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AlexKolc
117 / 158 / 67
Регистрация: 14.09.2013
Сообщений: 293
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); 
}
Hancer
0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 4
31.10.2015, 16:04  [ТС]     Консольная программа для сложения двух матриц #3
спс за оперативный ответ, понял в чем ошибки и что кучу лишнего кода бессмысленного... крч еще очень много штудировать нужно мне=)
Yandex
Объявления
31.10.2015, 16:04     Консольная программа для сложения двух матриц
Ответ Создать тему
Опции темы

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