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

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

Войти
Регистрация
Восстановить пароль
 
nkei
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 4
#1

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

19.12.2011, 14:47. Просмотров 464. Ответов 5
Метки нет (Все метки)

Проблема в элементарном коде, после присваивания переменной `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++
Здравствуйте. Вопрос: почему при компилировании программы со вторым экземпляром класса изменяются значения первого? namespace SALES { ...

Ошибка при выводе значения - C++
Здравствуйте,решая задание: Вычислить рекурсивно и нерекурсивно произведение четного количества n (n &lt;= 2) сомножителей следующего вида y...

Неожиданный результат при выводе значения переменной, несмотря на инкремент - C++
подскажите почему значения a и с начинаются с 1 а не с 2 стоит же &quot;++&quot; int a = 1; void f() { int b = 1; // инициализируется...

Не изменяются значения в массиве - C++
Здравствуйте, подскажите пожалуйста, не работает кусочек программы не изменяет значения, как исправить? for (int i=0; i&lt;n; i++) ...

При работе с вектором изменяются адреса элементов - C++
Здравствуйте. В соответствии с правилами создаю новую тему, хотя вопрос имеет отношение к другой проблеме в этом топике. Ситуация...

Почему в выводе массива нет введенного значения - C++
Добрый день. Разъясните пожалуйста, почему в выводе массива на экран, нет введенного значения и почему в выводе отладки, такие показатели...

Создать следующую программу: при наведении указателя мыши на кнопку ее координаты изменяются произвольным образом в пределах формы (кнопка убегает - C++
Создать следующую программу: при наведении указателя мыши на кнопку ее координаты изменяются произвольным образом в пределах формы (кнопка...

При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор - C++
Суть действий: При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор. Раньше я...

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

Перераспределить значения переменных - C++
Перераспределить значения переменных x и y так, чтобы в x оказалось большее из этих значений, а в y – меньшее.

Посчитать значения переменных - C++
a) int z=x/y++; если int x=1, y=2; b) int w=x%++y, если int x=1, y=2; c) int a=++m+n++*sizeof(int); если int m=1, n=2; d)...

перераспределить значения переменных - C++
парни выручайте!контра пишу с телефона) написать на си а не на си++ задание- перераспределить значения переменных х и у так чтобы в х...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
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     проблема - при выводе переменных, их значения изменяются
Ответ Создать тему
Опции темы

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