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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Maniacpp
Сообщений: n/a
#1

Передача параметров, оператор << - C++

28.10.2008, 23:01. Просмотров 1153. Ответов 2
Метки нет (Все метки)

Я вот решил написать простенькую программку на свеже скачанной среде. Программка создает функцию, которая перемножает 2 числа а также хранит в глобальной переменной kol количество, сколько раз функцию вызывали. Так вот почему в варианте, где только один оператор cout. при выводе kol имеет значение 0, а не один как по идее должно быть? И даже если несколько раз вызвать функцию значение kol будет все равно равно 0.
Код
#include <iostream>
using namespace std;
int kol = 0;
float multiply (float a, float b)
{
    kol++;
    return a * b;
}
int main()
{
    float x, y;
    cout<<"Введите два числа:"<<endl;
    cin>>x>>y;
    cout<<"Произведение этих чисел равно: "<<multiply(x, y)<<endl
         <<"Функция вызывалась "<<kol<<" раз(а).";
    return 0;
}

А в таком где cout разделен на два оператора, глобальная переменная kol равна 1! соответственно если несколько раз вызвать функцию, то значение будет возрастать на единичку, как и задумывалось...

Код
#include <iostream>
using namespace std;
int kol = 0;
float multiply (float a, float b)
{
    kol++;
    return a * b;
}
int main()
{
    float x, y;
    cout<<"Введите два числа:"<<endl;
    cin>>x>>y;
    cout<<"Произведение этих чисел равно: "<<multiply(x, y)<<endl;
    cout<<"Функция вызывалась "<<kol<<" раз(а).";
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2008, 23:01     Передача параметров, оператор <<
Посмотрите здесь:

Передача параметров в классе - C++
Нужно чтобы программа рассчитывала стоимость драгоценного камня и стоимость его огранки. И все это должно быть сделано через класс и...

передача параметров в функцию - C++
Здарвствуйте! Неделю изучаю С++, и в книге по которой изучаю сказано: &quot;Передавать параметры по значению только при необходимости и...

Передача параметров в функции - C++
Здравствуйте Помогите, пожалуйста, разобраться с передачей параметров. Задание : создать класс &quot;Треугольник&quot;, определить углы и тип...

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

Передача параметров в программу - C++
Здравствуйте. Пишу небольшой мп3-плеер (на борланде), столкнулся с такой проблемой: при попытке открыть несколько файлов с помощью моей...

Передача параметров (функция) - C++
Помогите,пожалуйста написать (ДОПИСАТЬ) программу на C++. Создать функцию, которая принимает на вход дат рождения и текущую дату...

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

Передача дефолтных параметров - C++
Объясню проблему на примере: class TMyControl { public: TMyControl(int param1 = 100, int param2 = 150) { ...

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

Инкремент и передача параметров - C++
Недавно наткнулся на человека, который утверждал что: int add(int x, y) { return x+y; } int func() { int i = 1; return...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
29.10.2008, 00:10     Передача параметров, оператор << #2
Все правильно.Кстати,попробуй поменять местами вывод результата умножения и кол-ва вызовов.
Примерно так:
Код
cout <<"Функция вызывалась "<<kol<<" раз(а)."
<<"Произведение этих чисел равно: "<<multiply(x, y)<<endl;
Изначально у тебя работало неправильно,т.к kol помещалась в стек до того,как вызывалась multiply. Общая рекоммендация - не использовать "спорный" код,когда порядок передачи аргументов может повлиять на результат. Не уверен,что порядок передачи параметров для таких выражений строго оговорен.Смотреть нужно.
ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
29.10.2008, 00:13     Передача параметров, оператор << #3
1) комп нетупит...
2) подобная тема уже была...
Помогите чайнику с инкрементом...
Ответ Создать тему
Опции темы

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