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

проблема - при выводе переменных, их значения изменяются - C++

Восстановить пароль Регистрация
 
nkei
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 4
19.12.2011, 14:47     проблема - при выводе переменных, их значения изменяются #1
Проблема в элементарном коде, после присваивания переменной `result1` значения `n+++m--`, значения `n` и `m`, тоже изменяются, что за ерунда?? Допустим вводим `n=2` и `m=3`, после присваивания `result1=n+++m--`, `n=3`, а `m=2`. Это лабораторная по C++, в основном пишу на С#, таких проблем не было.
C++
1
2
3
4
5
6
7
8
9
10
11
12
float m, n, x, result, result1, result2;
 
    cout << "Введите n: ";
    cin >> n; // ввод m
 
    cout << "Введите m: ";
    cin >> m; // ввод n
 
    printf("n= %.2f m= %.2f\n\n", n, m);
 
    result1 = n+++m--;
    cout << "n+++m--= " << result1; // вывод m+++n--
изначально код был такой, но результат тот же:
C++
1
2
3
4
5
6
7
8
9
10
float m, n, x, result, result1, result2;
 
    cout << "Введите n: ";
    cin >> n; // ввод m
 
    cout << "Введите m: ";
    cin >> m; // ввод n
 
    printf("n= %.2f m= %.2f\n", n, m);
    printf("n+++m--= %.2f", n+++m--); // вывод m+++n--
Знаю проблема совсем глупая, но я уже уйму времени потратил переделывая код...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 14:47     проблема - при выводе переменных, их значения изменяются
Посмотрите здесь:

C++ Создать следующую программу: при наведении указателя мыши на кнопку ее координаты изменяются произвольным образом в пределах формы (кнопка убегает
C++ При работе с вектором изменяются адреса элементов
C++ Почему при компилировании программы со вторым экземпляром класса изменяются значения первого?
Std::count << std::hex << (long) 0x0a; Как сделать, чтоб от HEX значения ноль при выводе не убирался? C++
Ошибка при выводе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
19.12.2011, 14:53     проблема - при выводе переменных, их значения изменяются #2
Цитата Сообщение от nkei Посмотреть сообщение
значения `n+++m--`, значения `n` и `m`, тоже изменяются, что за ерунда?
Так и должно быть. Запись `n++` в некотором роде аналогична записи `n = n + 1`, а `m--` соответственно `m = m - 1`.
dino-4udo
-41 / 5 / 1
Регистрация: 16.12.2010
Сообщений: 68
19.12.2011, 14:53     проблема - при выводе переменных, их значения изменяются #3
Это называется инкремент и декремент
nkei
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 4
19.12.2011, 15:08  [ТС]     проблема - при выводе переменных, их значения изменяются #4
Да насчёт инкремент и декремент понял)) Просто я думал что если:
C++
1
2
float n=3;
n++;
то `n` станет равно 4. А если
C++
1
2
3
float n=3;
float result;
result = n++;
то `result` будет равно 4, а `n` не изменится, останется равным 3.
Получается нужно присваивать изначальные данные темповским переменным и работать только с ними?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
19.12.2011, 15:10     проблема - при выводе переменных, их значения изменяются #5
Цитата Сообщение от nkei Посмотреть сообщение
`result` будет равно 4, а `n` не изменится, останется равным 3.
при записи
Цитата Сообщение от nkei Посмотреть сообщение
result = n++;
result будет равно 3, а n станет равно 4.
nkei
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 4
19.12.2011, 15:29  [ТС]     проблема - при выводе переменных, их значения изменяются #6
Цитата Сообщение от easybudda Посмотреть сообщение
при записи

result будет равно 3, а n станет равно 4.
Да действительно.

Напишите пожалуйста, для наглядности, как правильно оформить задачу:

`n`, `m` вводятся с клавиатуры. Вывести `n=`, `m=`, `n+++m--=`. Вывести больше или меньше `n*m` или `n++`.
Yandex
Объявления
19.12.2011, 15:29     проблема - при выводе переменных, их значения изменяются
Ответ Создать тему
Опции темы

Текущее время: 17:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru