Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 36
1

Написать процедуру для суммирования матриц. Ошибка при передаче массива в функцию

26.05.2015, 18:46. Показов 1922. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста! Дано задание:
Написать процедуру для суммирования матриц. С ее помощью сложить
исходную матрицу и транспонированную (т.е полученную поворотом
исходной на 90 гр.)
вот накарлякал код, но он выдаёт ошибку, что-то с передачей массива в функцию(
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
#include <iostream.h>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
using namespace std;
void fun (int**, int**, int n);
int main(){
srand(time (NULL));
const int n = 4;
int A[n][n];
int B[n][n];
int i, j;
cout <<"Matrica sostoit iz chisel: \n\n";
for (i=0; i<n; i++){
for (j=0; j<n; j++){
A[i][j] = rand()%9;
cout <<A[i][j]<<"\t";
}
cout<<"\n\n";
}
cout <<"Transponirovannaja matrica: \n\n";
for (j=0; j<n; j++){
for (i=0; i<n; i++){
B[i][j]=A[i][j];
cout << B[i][j] << "\t";
}
cout<<"\n\n";
}
fun(A,B,n);system("pause");
return 0;
}
void fun (int** a, int** b, int n){
int i, j;
for (i=0; i<n; i++){
for (j=0; j<n; j++){
cout << a[i][j]+b[i][j] << "\t";
}
cout<<"\n\n";
}
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2015, 18:46
Ответы с готовыми решениями:

Написать процедуру для суммирования матриц
1. Даны натуральные числа a, b, c. Определить функцию bin(x), переводящую число х из десятичной...

Написать процедуру для суммирования матриц. Сложить исходную матрицу и транспонированную
Написать процедуру для суммирования матриц. С ее помощью сложить исходную матрицу и...

Написать процедуру и функцию для сложения и вычитания вещественных матриц
Написать процедуру и функцию для сложения и вычитания вещественных матриц. Одним из формальных...

Ошибка при передаче двумерного массива в функцию
cannot convert 'int (*)' to 'int**' for argument '1' to 'void func(int**, int, int)' ...

4
195 / 195 / 120
Регистрация: 27.05.2011
Сообщений: 545
26.05.2015, 18:53 2
int** — указатель на указатель на число. int[][] — двумерный массив чисел. Разные вещи.
Замените у себя тип int** на int[N][M]. Помните, что у многомерных массивов, при передаче их как аргументы функции, все размерности кроме первой указывать обязательно.
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 36
26.05.2015, 19:15  [ТС] 3
походу у меня руки кривые, заменил, так ошибок ещё больше стало, в вызове функии тоже не ладное(
0
195 / 195 / 120
Регистрация: 27.05.2011
Сообщений: 545
26.05.2015, 19:29 4
Лучший ответ Сообщение было отмечено Dok16 как решение

Решение

А как вы заменяли? Синтаксис не нарушили? Вот я так позаменял и у меня рабоатет
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
const size_t n = 4;
 
void fun (int[n][n], int[n][n]);
 
int main() {
    srand(time(NULL));
    int A[n][n];
    int B[n][n];
    cout << "Матрица состоит из чисел: \n\n";
    for (size_t i = 0; i < n; i++) {
        for (size_t j = 0; j < n; j++){
            A[i][j] = rand() % 9;
            cout << A[i][j] <<"\t";
        }
        cout << "\n\n";
    }
    cout << "Транспонированная матрица: \n\n";
    for (size_t j = 0; j < n; j++) {
        for (size_t i = 0; i < n; i++) {
            B[i][j] = A[i][j];
            cout << B[i][j] << "\t";
        }
        cout << "\n\n";
    }
    fun(A, B);
    return 0;
}
void fun(int a[n][n], int b[n][n]) {
    for (size_t i = 0; i < n; i++) {
        for (size_t j = 0; j < n; j++) {
            cout << a[i][j] + b[i][j] << "\t";
        }
        cout << "\n\n";
    }
}

Не по теме:

Помио этого я ещё и форматирование привёл в порядок. Странно, почему новички так не любят выравнивать код…

1
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 36
26.05.2015, 19:38  [ТС] 5
Спасибо! я лишние данные вводил при вызове функции)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2015, 19:38

Ошибка при передаче двумерного массива в функцию
Помогите пожалуйста, никак не могу разобраться. Я хочу чтобы функция createBlankGameField() ввела...

Ошибка при передаче в функцию указателя на элемент массива
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; ...

Ошибка при передаче двумерного массива в функцию std::thread
Здравствуйте! Написал программу на потоки, теперь нужно передать туда двумерный массив. Пытаюсь...

Как написать функцию суммирования двумерного массива, задаваемого с клавиатуры?
Требуется ввести с клавиатуры массив, к примеру, 2Х3 и посчитать его сумму с помощью функции. Не...


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

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

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