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

Двухмерная матрица и функция - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
crazetss
Сообщений: n/a
04.12.2010, 22:27     Двухмерная матрица и функция #1
У меня такая задача: надо задать квадратную матрицу и посчитать сумму элементов главной диагонали(сумму посчитать в функции)
написал, но в описании функции ругается, что массив не может содержать элементы такого типа
подскажите, что надо исправить, заранее спасибо.

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
int sum (double A[][], int n, int m)  //
{
double result = 0;
for (int i = 0; i < n; i++)
{
    for (int j = 0; j < m; j++)
    {
    if (i == j)
        result = result +  A[i][j];
    }
    return result;
}
}
int main()
{
double **A;
int n;
int m;
 
cout <<"enter n "<<endl;
cin >> n;
cout <<"enter m"<<endl;
cin >> m;
 
A = new double *[n];
for(int i=0;i<n;i++)
A[i] = new double [m];
 
for (int i = 0; i < n; i++)
{
    for (int j = 0; j < m; j++)
    {
        cout <<"input ["<<i<<"]["<<j<<"] element array A"<<endl;
        cin >> A[i][j];
    }
}
cout<<endl;
cout <<sum(A,n,m)<<endl;
 
cin.get();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2010, 22:27     Двухмерная матрица и функция
Посмотрите здесь:

C++ Двухмерная графика на C++
Матрица,функция или процедура. C++
C++ Матрица двухмернная.функция добавить колону
Нужно сделать, чтобы программа состояла из 3 функций, тоесть 1-ая функция ввода массива, 2-ая основная функция, 3-я- вывод массива C++
Функция, вызываемое значение которой - матрица. Как это? C++
есть функция которая размещает 2 числа в порядке возрастания, значения в эту функцию передаю по указателю, но по указателям функция их не сортирует C++
Матрица и функция (Сложение двух матриц функцией sum) C++
Двухмерная матрица и функция C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.12.2010, 22:44     Двухмерная матрица и функция #2
C++
1
double A[][]
C++
1
double *A[]
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
04.12.2010, 22:47     Двухмерная матрица и функция #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
#include <iostream>
 
int sum(int **a, int rows, int cols) {
        int sum = 0;
        for(int i = 0; i < rows && i < cols; ++i)
                sum += a[i][i];
 
        return sum;
}
 
int main()
{
        int rows = 0;
        int cols = 0;
 
        std::cout << "rows: ";
        std::cin >> rows;
 
        std::cout << "cols: ";
        std::cin >> cols;
 
        int **matrix = new int*[rows];
        for(int i = 0; i < rows; ++i)
                matrix[i] = new int[cols];
 
        std::cout << "matrix " << rows << "x" << cols << " size" << std::endl;
        for(int i = 0; i < rows; ++i) {
                for(int j = 0; j < cols; ++j)
                        std::cin >> matrix[i][j];
        }
 
        std::cout << "sum: " << sum(matrix, rows, cols) << std::endl;
 
        for(int i = 0; i < rows; ++i)
                delete[] matrix[i];
        delete[] matrix;
 
        return 0;
}
Функция вычисления суммы у Вас вычисляет результат типа double, а возвращает int.
Память под матрицу выделяется динамически, следовательно функция должна принимать указатель.
Проход по главной диагонали матрицы осуществляется проще.

В общем смотрите пример и исправляйте ошибки.
Yandex
Объявления
04.12.2010, 22:47     Двухмерная матрица и функция
Ответ Создать тему
Опции темы

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