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

Расчет массива в функции и передача в main() - C++

Восстановить пароль Регистрация
 
sl_k
12 / 12 / 0
Регистрация: 15.04.2010
Сообщений: 61
15.04.2010, 10:00     Расчет массива в функции и передача в main() #1
Облазил поиски, но так ничего и не понял. На C++ только начинаю.

есть функция func, в которой расчитываются значиния массива U,
как из этой функции U в main перебросить для дальнейшей работы с U?
Можно просто схему, код я сам подставлю.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double func()
{
double U[N];
<расчет U>;
<возврат U>;
}
 
void main()
{
 <операторы>;
 <функция для расчета U>;
 <операторы с U>;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
15.04.2010, 10:07     Расчет массива в функции и передача в main() #2
C
1
2
3
4
5
void main()
{
double d;
d = func();// присваивает возвращяемое значение  функции func () переменой d
}
sl_k
12 / 12 / 0
Регистрация: 15.04.2010
Сообщений: 61
15.04.2010, 10:09  [ТС]     Расчет массива в функции и передача в main() #3
Цитата Сообщение от Sekt Посмотреть сообщение
C
1
2
3
4
5
void main()
{
double d;
d = func();// присваивает возвращяемое значение  функции func () переменой d
}
Получается, делать d массивом и в func возвращать массив?
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
15.04.2010, 10:15     Расчет массива в функции и передача в main() #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double U[N];//глобальный массив доступен и в U и в main
 
void func()
{
<расчет U>;
//<возврат U>;
//можно ничего не возвращать
}
 
void main()
{
<операторы>;
func();
<операторы с U>;
}
или

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void func(double U[])// или void func(double *U)
{
 
<расчет U>;
//<возврат U>;
//опять же не надо ничего возвращать
}
 
void main()
{
double U[N];
<операторы>;
func(U);
<операторы с U>;
}
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
15.04.2010, 10:19     Расчет массива в функции и передача в main() #5
массив должен быть передан из main или пустой, или с какими-то данными. но функция не обязательно должна возвращать какое-то число (например, количество эл-в измененного массива), можно и так написать:
C++
1
2
3
void main()
{
funk (d, n); //где d - массив(передается в функцию, n - кол-во элементов исходного масива
там функция делает преобразования и изменяет массив. массив передавать обратно не надо.
Но лучше в функцию передавать два массива, чтобы переделанные элементы записывать в новый массив
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
15.04.2010, 10:23     Расчет массива в функции и передача в main() #6
Цитата Сообщение от sl_k Посмотреть сообщение
есть функция func, в которой расчитываются значиния массива U,
если вам надо расчитать значения массива (сумма,разность и т.д) то возвращяйте одно значение.Если вам надо возвратить целый массив то возвращяйте указатель на него.
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
15.04.2010, 10:30     Расчет массива в функции и передача в main() #7
Можно и ничего не возвращать, а в функцию передать указатель на массив.

C++
1
2
3
4
5
6
7
8
9
10
11
12
const int size = 50;
 
void func (int* a, int size) {
   ... // операции с массивом a //
}
 
void main() {
   int a[size];
   // ввод массива //
   func(a, size);
   // вывод массива или операции с ним //
}
В таком случае мы передаём в функцию указатель на первый элемент, функция делает что-то с массивом (не забудьте передать размер массива), ничего не возвращает, но меняет сам массив.
sl_k
12 / 12 / 0
Регистрация: 15.04.2010
Сообщений: 61
15.04.2010, 10:49  [ТС]     Расчет массива в функции и передача в main() #8
Цитата Сообщение от ivpoed Посмотреть сообщение
Можно и ничего не возвращать, а в функцию передать указатель на массив.

C++
1
2
3
4
5
6
7
8
9
10
11
12
const int size = 50;
 
void func (int* a, int size) {
   ... // операции с массивом a //
}
 
void main() {
   int a[size];
   // ввод массива //
   func(a, size);
   // вывод массива или операции с ним //
}
В таком случае мы передаём в функцию указатель на первый элемент, функция делает что-то с массивом (не забудьте передать размер массива), ничего не возвращает, но меняет сам массив.

Огромное спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2010, 10:52     Расчет массива в функции и передача в main()
Еще ссылки по теме:

C++ Расчёт значений двумерного массива и их возврат в main() с однократным вызовом функции
C++ Передача массива структур в функции
Пересоздание массива в функции и дальнейшее его использование в main C++

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

Или воспользуйтесь поиском по форуму:
maxnm
2 / 2 / 0
Регистрация: 21.12.2009
Сообщений: 24
15.04.2010, 10:52     Расчет массива в функции и передача в main() #9
плюсану

C
1
2
3
4
5
6
int func(int *m[,..])
{  ..........; return n; }
 
void main ()
{ int a[100400], b;
b = func(a[,...])// и тут b присвоится n из функции  }
это если присвоить, думаю понял, что функция должна хоть чтото возвращать, логично что ничего не присвоиться если она void

Если же сделать войд, то будет примерно так:
C
1
2
3
4
5
6
7
8
void func(int *m[,..])
{  ..........; 
}
 
void main ()
{ int a[100400], b;
func(a[,...]);//и тут чтото с этим массивом сделалось
}
Yandex
Объявления
15.04.2010, 10:52     Расчет массива в функции и передача в main()
Ответ Создать тему
Опции темы

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