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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
sprocket
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
#1

Оператор return - C++

04.07.2012, 16:01. Просмотров 1428. Ответов 12
Метки нет (Все метки)

Помогите пожалуйста разобраться как работает оператор return.
Что происходит после return n и после return fibonacci (n-1) + fibonacci (n-2);

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
unsigned long fibonacci (unsigned long);
 
main()
{ 
unsigned long result, number;
cout <<  "Введите целое число :"
cin >> number ;
cout << "Число Фибоначчи("<< number<< ")= " << result << endl;
return 0;
}
unsigned long fibonacci (unsigned long n)
{ 
if (n==0 || n==1 )
return n;
else 
return fibonacci (n-1)  + fibonacci (n-2);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 16:01     Оператор return
Посмотрите здесь:

Оператор return; - C++
В коде одного примера встретился оператор return; Который просто ничего не возвращает. Вот часть кода: void PartList::Iterate(void...

Оператор return - C++
Всем привет, мне необходимо передать полученный массив в другой файл, читала где-то, что это можно сделать при помощи оператора return, но...

Оператор запятая в return и задача - C++
Всем ДВС! Разъясните пожалуйста, почему тимус принимает #include &lt;cstdio&gt; #include &lt;cstdlib&gt; const int MAXN = 1 &lt;&lt; 5; ...

Как использовать оператор return? - C++
При запуске возникает ошибка, связанная с тем, что функция должна вернуть значение. Подскажите, что требуется подставить для return (строки...

С++, оператор return. ПОдскажите, почему не работает? - C++
нужно, чтобы линейная программа завершалась, если выполняется условие. Но даже если условие не выполняется, совершается выход из...

Как работает оператор cout и return? - C++
Допустим есть функция: int show() { int g = 5; cout &lt;&lt; (g&gt;7)?1:2; return g&gt;7?1:2; }return на выражение g&gt;7?1:2...

Не работает оператор return в рекурсивной функции - C++
Писал курсач реализовать игру в калах. В коде в функции solve_computer() в 112 строчке не срабатывает оператор return. Понятия не имею...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
04.07.2012, 16:32     Оператор return #2
sprocket, функция может возвращать значение. Зачем? ну например, что бы каждый раз не писать x*x можно создать функцию "double sqr(double a){ return a*a; }", в которую будет передаваться значение и она будет возвращать его квадрат
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
04.07.2012, 16:34     Оператор return #3
Цитата Сообщение от sprocket Посмотреть сообщение
Помогите пожалуйста разобраться как работает оператор return.
Что происходит после return n и после return fibonacci (n-1) + fibonacci (n-2);

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
unsigned long fibonacci (unsigned long);
 
main()
{ 
unsigned long result, number;
cout <<  "Введите целое число :"
cin >> number ;
cout << "Число Фибоначчи("<< number<< ")= " << result << endl;
return 0;
}
unsigned long fibonacci (unsigned long n)
{ 
if (n==0 || n==1 )
return n;
else 
return fibonacci (n-1)  + fibonacci (n-2);
}
должно быть так
если условие выполняется то возвращаеться значение переменной н
а если нет то fibonacci (n-1) + fibonacci (n-2)
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
04.07.2012, 16:34     Оператор return #4
sprocket,

C++
1
2
3
4
5
6
7
unsigned long fibonacci (unsigned long n)
{ 
if (n==0 || n==1 )
return n;
else 
return fibonacci (n-1)  + fibonacci (n-2);
}

Эта функция рекурсивная. То есть она вызывает сама себя. Как конечное значение она возвращает n-ное число фибоначи

Добавлено через 36 секунд
ЗЫ:

C++
1
2
if (n==0 || n==1 )
return n;
Да ну?
return 1;
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
04.07.2012, 16:36     Оператор return #5
она же вроди не вызывается из main
Dragokas
Эксперт WindowsАвтор FAQ
15780 / 6628 / 799
Регистрация: 25.12.2011
Сообщений: 10,255
Записей в блоге: 16
04.07.2012, 20:21     Оператор return #6
Значит оператор пропустили:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
unsigned long fibonacci (unsigned long);
 
int main()
{
    system("chcp 1251>>null");
    unsigned long result, number;
    std::cout <<  "Введите целое число :";
    std::cin >> number;
    result = fibonacci(number);
    std::cout << "Число Фибоначчи("<< number<< ")= " << result << "\n";
    system ("pause>>null");
    return 0;
}
 
unsigned long fibonacci (unsigned long n)
{
    if (n==0 || n==1)
        return n;
    else
        return fibonacci(n-1) + fibonacci(n-2);
}
sprocket
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
04.07.2012, 22:34  [ТС]     Оператор return #7
А в этой задаче мы нашли max и возвращаем его в первую функцию но зачем он впервой если там нету max и почему именно return max (а не return maxi или что то тому подобное)?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
int maximum(int,  int,  int);  
main
 {
int a, b, c;
 
cout << "Введите три целых числа: "; 
cin >> а >> b >> с;
cout << "Максимум равен " << maximum (a, b, с) << endl;
 return 0;
}
 
 int maximum(int x,  int y,  int z) 
{
int max = x;
 
if  (y > max)
max = y; 
if  (z > max)
max = z;
 
return max;
}
Leomana
58 / 58 / 5
Регистрация: 29.06.2012
Сообщений: 188
04.07.2012, 22:48     Оператор return #8
Цитата Сообщение от sprocket Посмотреть сообщение
А в этой задаче мы нашли max и возвращаем его в первую функцию но зачем он впервой если там нету max и почему именно return max (а не return maxi или что то тому подобное)?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
int maximum(int,  int,  int);  
main
 {
int a, b, c;
 
cout << "Введите три целых числа: "; 
cin >> а >> b >> с;
cout << "Максимум равен " << maximum (a, b, с) << endl;
 return 0;
}
 
 int maximum(int x,  int y,  int z) 
{
int max = x;
 
if  (y > max)
max = y; 
if  (z > max)
max = z;
 
return max;
}
О_о ухаха.. ничего себе вопросы.. ну ладно . Функция maximum возращает max ,других переменных вообще и нет, о каких maxi и подобных ваще идет речь? Возвращается обратно не само "max", а значение (число), которое в нем хранится. Просто число попадает в "cout << "Максимум равен " << сюда..", которое выводится на экран
sprocket
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
04.07.2012, 23:00  [ТС]     Оператор return #9
а почему return max а возвращается в maximum?
Leomana
58 / 58 / 5
Регистрация: 29.06.2012
Сообщений: 188
04.07.2012, 23:02     Оператор return #10
Цитата Сообщение от sprocket Посмотреть сообщение
а почему return max а возвращается в maximum?
возвращается не в maximum, а в main, там где вызвали функцию maximum
Dragokas
Эксперт WindowsАвтор FAQ
15780 / 6628 / 799
Регистрация: 25.12.2011
Сообщений: 10,255
Записей в блоге: 16
04.07.2012, 23:19     Оператор return #11


C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
  int a, b, c;
  std::cout << "Введите три целых числа: "; 
  std::cin >> a >> b >> c;
  std::cout << "Максимум равен " << (a>b ? (a>c ? a : c) : (b>c ? b : c)) << "\n";
  return 0;
}
Это как нужно извращаться, чтобы выкладывать пример с переменными разных ASC-кодов одной и той же буквы.
sprocket
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 22
04.07.2012, 23:29  [ТС]     Оператор return #12
В первой функции мы вводим a,b,c как они попадают во вторую функцию и почему мы возвращаем max а выводится maximum?
Возможно подскажите литературу, читаю Дейтела может что то другое?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2012, 23:46     Оператор return
Еще ссылки по теме:

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

return (n<0) ? -n:n; - C++
Что это означает, return (n&lt;0) ? -n:n; не как не могу понять? Может быть это как if (n&lt;0) return true; else false; ...

return - C++
Вот такой вопрос, как вернуть значения из функции, и чтоб функция main это узнала? если на примере, то во так, допучтим есть функция...

Return - C++
Подскажите пожалуйста, каким образом return ом из функции возвращать 2 значения, напрмер 2 корня квардатного уравнения, найденных в одной...

Return - C++
Всем доброго времени суток! У меня возникла проблема с возвратом значения массива double *c, у меня берётся только одно последнее значение...


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

Или воспользуйтесь поиском по форуму:
Leomana
58 / 58 / 5
Регистрация: 29.06.2012
Сообщений: 188
04.07.2012, 23:46     Оператор return #13
Цитата Сообщение от sprocket Посмотреть сообщение
В первой функции мы вводим a,b,c как они попадают во вторую функцию и почему мы возвращаем max а выводится maximum?
Возможно подскажите литературу, читаю Дейтела может что то другое?
тщательно читайте книги тщательно! А то мне кажется это слишком странные вопросы. Очень хорошо разжевывается (как мне кажется) в книге Шилдт. Происходит вызов функции maximum, там где maximum(a,b,c), и в int x, int y, int z попадают эти a,b,c соответственно. Вы программу запускали хоть? Если мы будет maximum(1,2,3), в max попадет 3. Эта 3ка возвращается там где maximum(1,2,3) (как бы вместо этого вызова). И на экран распечатается "Максимум равен 3"
Yandex
Объявления
04.07.2012, 23:46     Оператор return
Ответ Создать тему
Опции темы

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