С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
#1

Правило использования функции, которая возвращает массив - C++

18.03.2014, 10:19. Просмотров 185. Ответов 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
const int N=100;
const double A0=1, h=0.01;
 
double *Progonka(double *A, double *B, double *C, double *F, double first, double second)
{
      int i;
      double *y, *alfa, *betta;
      alfa=(double*)malloc((N)*sizeof(double));
      betta=(double*)malloc((N)*sizeof(double));
      y=(double*)malloc((N+1)*sizeof(double));
 
      y[N]=first;
      alfa[0]=0;                        
      betta[0]=second;
 
    for (i=0; i<N; i++) 
    {
        alfa[i]=B[i-1]/(C[i-1]-alfa[i-1]*A[i-1]);
        betta[i]=(A[i-1]*betta[i-1]+F[i-1])/(C[i-1]-alfa[i-1]*A[i-1]);
    }
 
    for (i=N-1; i>=0; i--)
      y[i]=alfa[i]*y[i+1]+betta[i];
 
    return y;
}
int main (void)
{
for (int j=0; j<=N-2; j++ )// вычисление S05
        S05 = Progonka(g22, g22, C_massiv, F_massiv, A0, A0);
}
Правильно ли я вызываю функцию, или может быть что то не правильно делаю, потому что программа сама длинная, и есть подозрение что я что то неправильно делаю. Помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 10:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Правило использования функции, которая возвращает массив (C++):

Создать функцию, которая возвращает количество элементов массива, меньших чем число, заданное пользователем. Массив целочисленный, передается функции - C++
Добрый вечер! Помогите пожалуйста) Создать функцию, которая возвращает количество элементов массива, меньших чем число, заданное...

Вызов функции, которая возвращает 2 параметра - C++
Видимо я что-то принципиально не понимаю, что же тут не так #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include...

Функция, которая возвращает массив - C++
Как сделать так чтобы функция возвращала указатель на рандомно сгенерированный массив. Входящими данными будет количество строк и столбцов...

Функция, которая возвращает массив - C++
Здравствуйте. Подскажите, пожалуйста, как правильно написать код - есть функция; она должна вернуть массив, который создается в этой же...

Функция которая возвращает динамический массив - C++
Здравствуйте! у меня такой глупый вопрос. Я все время путаюсь и никак не могу четко сформулировать на него ответ. Помогите мне раз и...

Реализовать функцию, которая принимает массив и возвращает количество простых чисел в нем - C++
Ребят , есть задачи , а в частности нужно с помощью функций и деления по остатку (%) написать несколько программ , а именно : 1)...

3
John Prick
824 / 757 / 152
Регистрация: 27.07.2012
Сообщений: 2,156
Завершенные тесты: 3
18.03.2014, 10:26 #2
У вас S05 нигде не объявляется.

Добавлено через 2 минуты
C++
1
y=(double*)malloc((N+1)*sizeof(double));
Не проще ли так:
C++
1
y = new double[N + 1];
0
АлексИванов
0 / 0 / 1
Регистрация: 08.11.2012
Сообщений: 72
18.03.2014, 10:48  [ТС] #3
Часть кода я не стал приводить, интересует правильность использования самого синтаксиса. Чтобы действительно в S05 получался результат действия функции прогонки.
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
18.03.2014, 11:23 #4
Может имеет смысл вынести из функции созднание и возвращение массива? Вы выделили память для y - вопрос: А где она должна освобождаться и кем?
Считаю более предпотительнее создавать массив отдельно от функции, а в нее передавать указатель на этот массив.
Вот тут:
C++
1
        alfa[i]=B[i-1]/(C[i-1]-alfa[i-1]*A[i-1]);
иттерация с i = 0 вызовет alfa[-1]
Аналогично и здесь
C++
1
        betta[i]=(A[i-1]*betta[i-1]+F[i-1])/(C[i-1]-alfa[i-1]*A[i-1]);
И еще используйте префиксный инкремент в цикле.
0
18.03.2014, 11:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 11:23
Привет! Вот еще темы с ответами:

Реализовать функцию, которая получает массив и возвращает количество простых чисел в нем. - C++
НАРОД ПОМОГИТЕ С ЗАДАЧЕЙ,ЕСТЬ ИСХОДНИК. РЕАЛИЗОВАТЬ ФУНКЦИЮ КОТОРАЯ ПОЛУЧАЕТ МАССИВ И ВОЗВРАЩАЕТ КОЛ-ВО ПРОСТЫХ ЧИСЕЛ В НЕМ ...

Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. - C++
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++. Условие:Реализовать 3 функции, каждая из которых принимает указатель на...

Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++ - C++
Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++

Написать функцию, которая зануляет массив переданный как параметр и возвращает кол-во отрицательных элементов до зануления? - C++
Написать функцию, которая зануляет массив переданный как параметр и возвращает кол-во отрицательных элементов до зануления? Такие дела.:(


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

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

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