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

Передача в параметр многомерного массива произвольного размера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Преобразовать массив, прибавив к четным числам первый элемент http://www.cyberforum.ru/cpp-beginners/thread1123737.html
Не получается решить задачу можете помочь что как нужно? Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам первый элемент. Первый элемент массива не изменять. Много мучаюсь #include<iostream> #include<stdio.h> #include<conio.h> main()
C++ Swap для двунаправленного списка Поменять просто значения узлов, не интересно. Я запутываюсь с ссылками. элементы могут быть заглавными или последними. struct node { int k; node *next; node *pred; }; http://www.cyberforum.ru/cpp-beginners/thread1123731.html
C++ Составить программу, которая по дате рождения человека (день, месяц, год в числовой форме) вычисляет, сколько лет, недель и дней прожил человек
Составить программу, которая по дате рождения человека (день, месяц, год в числовой форме) вычисляет, сколько лет, недель и дней прожил человек по настоящую дату.
Составить программу , которая содержит динамическую информацию о наличие автобусов в парке C++
Составить программу , которая содержит динамическую информацию о наличие автобусов в автобусном парке . Сведения о каждом автобус включают : - номер автобуса ; - фамилия и инициалы водителя ; - номер маршрута . Программа должна обеспечивать : - начальное формирование данных о всех автобусы в парке в виде списка ; - при выезде каждого автобуса из парка вводится номер автобуса , и программа...
C++ Осуществить сдвиг элементов массива вправо на k позиций http://www.cyberforum.ru/cpp-beginners/thread1123679.html
Всем привет , помогите пожалуйста решить эту задачу на языке Си 9. Дан целочисленный массив размера N. Осуществить сдвиг вправо на k позиций, где k – сумма четных элементов
C++ Прокомментировать код Здравствуйте! Пожалуйста, как можно яснее откомментируйте коды программ, очень нужно для понимания, чтобы разобраться.. пожалуйста.. 1 задача #include <iostream> #include <cstdlib> #include <cmath> #include <locale> using namespace std; подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.03.2014, 11:52     Передача в параметр многомерного массива произвольного размера
Пусть, например, имеется функция
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
void Gauss(double **a, double *b, size_t n, double *x)
{
 size_t i;
 size_t j;
 size_t k;
 double s;
 double kof;
 for (i=0; i<n; ++i)
 {
  for (j=i+1; j<n; ++j)
  {
   kof=a[j][i]/a[i][i];
   b[j]-=b[i]*kof;
   for (k=i; k<n; ++k)
   {
    a[j][k]-=a[i][k]*kof;
   }
  }
 }
 for (i=n-1; i<n; --i)
 {
  for (j=n-1, s=b[i]; j>i; --j)
  {
   s-=x[j]*a[i][j];
  }
  x[i]=s/a[i][i];
 }
}
, она работает, если ей скормить указатель массив указателей на строки, но
C++
1
double a[3][3];
означает совсем не это, приходится писать
C++
1
2
3
4
5
6
double a[3][3];
 double b[3];
 double x[3];
 double *pa[3]={a[0], a[1], a[2]};
 ...
 Gauss(pa, b, 3, x);
. Можно исправить на
C++
1
void Gauss(double a[3][3], double *b, double *x)
, а тройку забить в код функции, тогда можно писать
C++
1
2
3
4
5
double a[3][3];
 double b[3];
 double x[3];
 ...
 Gauss(pa, b, x);
. А как бы сделать функцию, чтоб она приняла и
C++
1
2
3
4
5
double a[3][3];
 double b[3];
 double x[3];
 ...
 Gauss(pa, b, 3, x);
и без переделок
C++
1
2
3
4
5
double a[4][4];
 double b[4];
 double x[4];
 ...
 Gauss(pa, b, 4, x);
и матрицу вообще любого другого размера?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru