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

Передача двумерного массива в функцию - C++

Восстановить пароль Регистрация
 
AndroDaPooh
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 3
08.04.2013, 08:46     Передача двумерного массива в функцию #1
Доброго времени суток, возникла проблема с передачей двумерного массива в с++. По условию необходимо подсчитать норму матрицы, для этого создаю функцию
C++
1
2
3
4
5
6
7
8
9
10
11
12
double nor1(double Bx[10][10],int n){
    double s[10],t=0;
    for(int i=0;i<=n;i++)
    {t=0;
    for(int j=0;j<=0;j++){
        t=t+fabs( Bx[j][i]);}
    s[i]=t;}
    t=s[0];
    for(int i=1;i<=n;i++)
    {if(s[i]>t){t=s[i];}
    }
    return t;}
в теле осн процедуры
C++
1
2
double Bx[10][10];
c=nor1(Bx,n);
однако в функции массив опознается как (Bx*)[10] и соответсвенно передается не полностью
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nuqlear
5 / 5 / 0
Регистрация: 05.11.2011
Сообщений: 17
08.04.2013, 09:32     Передача двумерного массива в функцию #2
Странно, у меня все работает правильно.
strisad
4 / 4 / 1
Регистрация: 03.04.2013
Сообщений: 11
08.04.2013, 11:45     Передача двумерного массива в функцию #3
Попробуйте так:
C++
1
c=nor1(&Bx[0][0],n);
AndroDaPooh
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 3
08.04.2013, 20:56  [ТС]     Передача двумерного массива в функцию #4
Сделал через глобальные переменные- результат не изменился- т.е. массив передавался правильно, но при этом пом функция все равно работает не так как надо, а надо найти максимум суммы столбцов по модулю.
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
08.04.2013, 21:08     Передача двумерного массива в функцию #5
может так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <vector>
 
double nor1(vector<vector<double>>Bx,int n){
    double s[10],t=0;
    for(int i=0;i<=n;i++)
    {t=0;
    for(int j=0;j<=0;j++){
        t=t+fabs( Bx[j][i]);}
    s[i]=t;}
    t=s[0];
    for(int i=1;i<=n;i++)
    {if(s[i]>t){t=s[i];}
    }
    return t;}
C++
1
2
3
4
5
6
7
//где то там пишешь
 
vector<vector<double>>A(N);
for(int i=0;i<N;i++)
A[i].resize(N);
 
c=nor1(A,n);
Может так пойдет
AndroDaPooh
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 3
08.04.2013, 21:14  [ТС]     Передача двумерного массива в функцию #6
for(int j=0;j<=0;j++)
нашел ошибку
Yandex
Объявления
08.04.2013, 21:14     Передача двумерного массива в функцию
Ответ Создать тему
Опции темы

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