Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
13 / 13 / 4
Регистрация: 15.04.2010
Сообщений: 61
1

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

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

Author24 — интернет-сервис помощи студентам
Облазил поиски, но так ничего и не понял. На 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2010, 10:00
Ответы с готовыми решениями:

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

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

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

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

8
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
15.04.2010, 10:07 2
C
1
2
3
4
5
void main()
{
double d;
d = func();// присваивает возвращяемое значение  функции func () переменой d
}
0
13 / 13 / 4
Регистрация: 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
221 / 135 / 48
Регистрация: 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
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
15.04.2010, 10:19 5
массив должен быть передан из main или пустой, или с какими-то данными. но функция не обязательно должна возвращать какое-то число (например, количество эл-в измененного массива), можно и так написать:
C++
1
2
3
void main()
{
funk (d, n); //где d - массив(передается в функцию, n - кол-во элементов исходного масива
там функция делает преобразования и изменяет массив. массив передавать обратно не надо.
Но лучше в функцию передавать два массива, чтобы переделанные элементы записывать в новый массив
0
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
15.04.2010, 10:23 6
Цитата Сообщение от sl_k Посмотреть сообщение
есть функция func, в которой расчитываются значиния массива U,
если вам надо расчитать значения массива (сумма,разность и т.д) то возвращяйте одно значение.Если вам надо возвратить целый массив то возвращяйте указатель на него.
0
1 / 1 / 2
Регистрация: 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
13 / 13 / 4
Регистрация: 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
2 / 2 / 1
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2010, 10:52
Помогаю со студенческими работами здесь

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

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

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

Передача массива функции
Привет. Хочу передать функции массив в качестве аргумента но не знаю как это сделать. Какой есть...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru