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

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

Войти
Регистрация
Восстановить пароль
 
НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
#1

Возвращаемые значения функции - C++

08.09.2012, 23:49. Просмотров 925. Ответов 11
Метки нет (Все метки)

Есть функция, которая должна вернуть в программу значение, но что то не так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int StartInfo(int FirstWidth,int FirstHeight)
{
    printf ("Write width: ");
    scanf("%d",&FirstWidth);
    printf ("Write height: ");
    scanf("%d",&FirstHeight);
    return FirstHeight;
}
int main(int argc, char** argv)
{
    StartInfo(FirstWidth, FirstHeight);
    printf ("%d", FirstHeight);
}
Если выводить FirstHeight в функции получается число которое я писал, а если в программе, то "0"
Может я дурак, поясните пожалуйста че не так то?
И еще, а как вернуть 2 значение функци?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2012, 23:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возвращаемые значения функции (C++):

возвращаемые значения функции шаблонного класса A и A<T> - C++
первый листинг template &lt;typename T&gt; class A { public: T a; A&amp; f()

можно как то сравнить возвращаемые значения этими функциями(разнопотоковыми)? функции на разных потоках - C++
можно как то сравнить возвращаемые значения этими функциями? и например если(они равны) {то завершить круг цикла и перейти к следующему}...

функция возвращает int, возвращаемые значения определены в макросах, как сразу выводить определённые макросы? - C++
Друзья! Есть какой-нибудь способ без if-else? Ну то есть вот код: #define odin 1 ////////////всякий код int f () {retutn...

Вычислить значения функции F на интервале от начального значения до конечного значения - C++
Написать консольное приложение на С++ Перепечатайте пожалуйста текст задания на форум.

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

Для каждого значения A вывести все значения функции попдающие в интервал от C до D - C++
Мне дали вот такое условие задачи: Y=f(x; a) X1&lt;=x&lt;=x2, x3 A1&lt;=a&lt;=a2, a3 Для каждого значения A вывести все значения функции...

11
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
08.09.2012, 23:52 #2
Нигде не вижу объявлений FirstWidth, FirstHeight.
Твоя функция принимает параметры по значению, если ты надеешься получить через них какие-то результаты - передавай по ссылке.
Чтобы вернуть 2 значения - заворачивай их в структуру, класс, std :: pair или во что-то еще.
1
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
08.09.2012, 23:55 #3
Цитата Сообщение от НубаС++ Посмотреть сообщение
Может я дурак, поясните пожалуйста че не так то?
а то что при такой передаче
Цитата Сообщение от НубаС++ Посмотреть сообщение
int StartInfo(int FirstWidth,int FirstHeight)
{
в функции образуется копия твоих параметров и вся работа идет с ними
при выходе они благополучно забываются
или передавай по ссылке или указателю
или в твоем случае
C++
1
printf ("%d",StartInfo(FirstWidth, FirstHeight));
тогда напечатается возвращаемое значение
ты же его нигде не запоминаешь
Цитата Сообщение от НубаС++ Посмотреть сообщение
StartInfo(FirstWidth, FirstHeight);
Добавлено через 1 минуту
Цитата Сообщение от Герц Посмотреть сообщение
Чтобы вернуть 2 значения - заворачивай их в структуру, класс, std :: pair или во что-то еще.
т.е ссылки и указатели отменили
1
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
08.09.2012, 23:58 #4
т.е ссылки и указатели отменили
Возвращаемым значением называется исключительно то, что приходит от return'a. Ref и out параметров ты можешь напихать сколько угодно, но они, строго говоряЮ не будут возвращаемыми значениями.
P.S.
Цитата Сообщение от Герц Посмотреть сообщение
Твоя функция принимает параметры по значению, если ты надеешься получить через них какие-то результаты - передавай по ссылке.
1
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
08.09.2012, 23:59 #5
НубаС++,
конкретно твой случай
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void StartInfo(int *FirstWidth,int *FirstHeight)
{
    printf ("Write width: ");
    scanf("%d",FirstWidth);
    printf ("Write height: ");
    scanf("%d",FirstHeight);
 
}
int main(int argc, char** argv)
{
   int firstWidth, firstHeight;
 
   StartInfo(&firstWidth, &firstHeight);
    printf ("%d  %d", firstWidth,firstHeight);
 
 return 0;
}
1
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
09.09.2012, 00:01 #6
Зачем же было мудрить с указателями, если достаточно ссылок?
C++
1
int StartInfo( int& FirstWidth,int& FirstHeight );
И ошибку допустил:
C++
1
2
    scanf("%d",&FirstHeight); // scanf передается int** вторым параметром
    return FirstHeight; //FirstHeight имеет тип int*, функция возвращает int
1
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
09.09.2012, 00:02 #7
Цитата Сообщение от Герц Посмотреть сообщение
Возвращаемым значением называется исключительно то, что приходит от return'a. Ref и out параметров ты можешь напихать сколько угодно, но они, строго говоряЮ не будут возвращаемыми значениями.
Нам "шашечки или ехать"
ТС интересует как в функции ввести два значения которые можно использовать в другом месте
а вопросы терминологии это уже другой уровень знания
1
Герц
09.09.2012, 00:03
  #8

Не по теме:

Так я ответил четко на поставленный вопрос :-)

1
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
09.09.2012, 00:03 #9
Цитата Сообщение от Герц Посмотреть сообщение
И ошибку допустил:
ошибку уже поправил просто копипастил исходный код и не доглядел
я еще и тип функции исправил
1
Герц
09.09.2012, 00:04
  #10

Не по теме:

Нубас, а OpenGL и 3ds не покатили? :-) Я же вроде объяснил, как что делать там

1
ValeryS
09.09.2012, 00:06
  #11

Не по теме:

Цитата Сообщение от Герц Посмотреть сообщение
Так я ответил четко на поставленный вопрос :-)
ты на уровень то вопрошающего гляди
он не может задать правильно вопрос потому что не обладает необходимыми знаниями
а ты ему сразу структуры

0
НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
09.09.2012, 17:07  [ТС] #12
Свем спасибо, всем поставил плюсы.
Герц, OpenGL я щас изучаю, щас уже перешол на управление мышью, а для каждого экрана свои координаты нужны, вот для этого мне и надо firstWidth,firstHeight)
0
09.09.2012, 17:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 17:07
Привет! Вот еще темы с ответами:

В зависимости от значения некоторого выражения вычислить значения функции y(x), определенной на отрезке [a;b], - C++
Добрый вечер, помогите пожалуйста решить задачку С++ на тему&quot;Сочетания циклов и разветвлений&quot; В зависимости от значения некоторого...

Вычислить и вывести на экран значения функции в зависимости от входного значения Х - C++
Вычислить и вывести на экран значения функции в зависимости от входного значения Х. заранее благодарю :sorry:

Составить программу вычисления значения функции для значения аргумента x, вводимого с клавиатуры - C++
Формула f(x) = ln 3 ( x 2 +1 ) + arctg 2 ( x 2 + 1 ) Помогите, пожалуйста

Табулирование заданной функции и определение максимального и минимального значения функции в таблице - C++
Разработать консольное приложение, производящее табулирование заданной функции и определение максимального и минимального значения функции...


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

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

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