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

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

Войти
Регистрация
Восстановить пароль
 
sl_k
12 / 12 / 0
Регистрация: 15.04.2010
Сообщений: 61
#1

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

15.04.2010, 10:00. Просмотров 562. Ответов 8
Метки нет (Все метки)

Облазил поиски, но так ничего и не понял. На 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>;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2010, 10:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расчет массива в функции и передача в main() (C++):

Передача параметров функции в main() - C++
Вот у меня есть две функции, которые в дальнейшем нужно вызвать в void main (). int Chislo(int *ar, int razmer) void Set_card(int...

Передача аргументов командной строки функции main() - C++
Добрый день Дана задача: Напишите программу, которая запрашивает пароль, задаваемый в команд- ной строке. Ваша программа не должна...

Передача файлов через параметры функции main - C++
Всем привет. Я студент первого курса. У меня возникла проблема при написании программы шифрования Xor алгоритмом, программа работает...

Пересоздание массива в функции и дальнейшее его использование в main - C++
Почему, когда я вызываю std::cout &lt;&lt; _list в функции, то вывод идет нормальный, а когда в main, то выводится не то, что нужно ? ...

Расчёт значений двумерного массива и их возврат в main() с однократным вызовом функции - C++
Добрый день. Пусть некоторая функция f(a,b,...) производит расчет и записывает данные в двумерный массив M, возвращая его указатель...

Как в отдельной функции выделить память для динамического массива, объявленного в main - C++
Доброго времени суток. Передо мной стоит задача выделения памяти для динамического массива в отдельной функции. То есть я объявляю в...

8
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
15.04.2010, 10:07 #2
C
1
2
3
4
5
void main()
{
double d;
d = func();// присваивает возвращяемое значение  функции func () переменой d
}
0
sl_k
12 / 12 / 0
Регистрация: 15.04.2010
Сообщений: 61
15.04.2010, 10:09  [ТС] #3
Цитата Сообщение от Sekt Посмотреть сообщение
C
1
2
3
4
5
void main()
{
double d;
d = func();// присваивает возвращяемое значение  функции func () переменой d
}
Получается, делать d массивом и в func возвращать массив?
0
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
15.04.2010, 10:15 #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>;
}
0
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
15.04.2010, 10:19 #5
массив должен быть передан из main или пустой, или с какими-то данными. но функция не обязательно должна возвращать какое-то число (например, количество эл-в измененного массива), можно и так написать:
C++
1
2
3
void main()
{
funk (d, n); //где d - массив(передается в функцию, n - кол-во элементов исходного масива
там функция делает преобразования и изменяет массив. массив передавать обратно не надо.
Но лучше в функцию передавать два массива, чтобы переделанные элементы записывать в новый массив
0
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
15.04.2010, 10:23 #6
Цитата Сообщение от sl_k Посмотреть сообщение
есть функция func, в которой расчитываются значиния массива U,
если вам надо расчитать значения массива (сумма,разность и т.д) то возвращяйте одно значение.Если вам надо возвратить целый массив то возвращяйте указатель на него.
0
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
15.04.2010, 10:30 #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);
   // вывод массива или операции с ним //
}
В таком случае мы передаём в функцию указатель на первый элемент, функция делает что-то с массивом (не забудьте передать размер массива), ничего не возвращает, но меняет сам массив.
1
sl_k
12 / 12 / 0
Регистрация: 15.04.2010
Сообщений: 61
15.04.2010, 10:49  [ТС] #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);
   // вывод массива или операции с ним //
}
В таком случае мы передаём в функцию указатель на первый элемент, функция делает что-то с массивом (не забудьте передать размер массива), ничего не возвращает, но меняет сам массив.

Огромное спасибо
0
maxnm
2 / 2 / 0
Регистрация: 21.12.2009
Сообщений: 24
15.04.2010, 10:52 #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[,...]);//и тут чтото с этим массивом сделалось
}
0
15.04.2010, 10:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2010, 10:52
Привет! Вот еще темы с ответами:

Передача массива из функции - C++
Всем привет! Только начал изучать С++ и вот столкнулся с проблемой, как вывести массив символов из функции через return. В коде я вывожу...

Передача массива функции - C++
Привет. Хочу передать функции массив в качестве аргумента но не знаю как это сделать. Какой есть способ? Код: void randoming(int...

Передача двумерного массива в функции - C++
Мне нужно передать массив в функцию, а затем из этой функции в другую функцию. Вот код: #define _CRT_SECURE_NO_WARNINGS #define...

Передача массива вызывающей функции - C++
Как можно передать массив целиком в вызывающую функцию? И можно ли сделать так: есть целочисленный массив,в котором находится N...


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

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

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