Member 13074487 Ответов: 2

Как вычесть сумму двух целых чисел из другого целого числа,а затем увеличить ее?


Как вычесть сумму x и y из z, а затем увеличить ее в одном операторе в C++

Что я уже пробовал:

#include<iostream>
using namespace std;
int main()
{
	int x,y,z,p;
	x=5;
	y=6;
	z=20;
	p=(z-(x+y))++;
	cout<<"value of z="<<p;
}


он показывает значение ошибки, необходимое в качестве левого операнда присваивания

David_Wimbley

Ваша проблема, скорее всего, связана с x+y=z++;- Тебе, наверное, пора идти. z=x+y; а потом сделать z++ как z++ не является переменной, ++ является оператором и не может рассматриваться как часть переменной.

Я не знаю, почему вам нужно было бы реализовать это в одном заявлении, мне кажется довольно глупым, но я думаю, что вы могли бы это сделать z = x + y + 1 или z = (x+y)++; Я не бросал это в компилятор, чтобы проверить, действительно ли это так, поскольку я бы не стал пытаться сделать математическую операцию и инкремент в той же строке для начала, это, вероятно, домашнее задание, а не действительная реальная ситуация.

Member 13074487

как я могу выполнить все операции в одном операторе? Мне разрешено использовать только один оператор для расчета

David_Wimbley

См. пересмотренный комментарий

jeron1

"Как вычесть сумму x и y из z"
В вашем коде нет вычитания и
Как это можно сделать, если z неинициализирован?

2 Ответов

Рейтинг:
2

Jochen Arndt

Вам нужна одна переменная в левой части задания.

Сначала напишите код в отдельных операторах:

z = z - (x + y); // Subtract sum of x and y from z; or z-= x + y
z = z + 1; // increment z; or z++
Подумайте теперь, как это можно поместить в одну строку.
Совет: вычитание отрицательного числа из значения эквивалентно сложению абсолютного значения числа.


Member 13074487

Я сделал это z=z-(x+y); но можно ли увеличить его в той же строке?????

David_Wimbley

z=(z-(x+y)) + 1;

Рейтинг:
0

OriginalGriff

Цитата:
Я сделал это z=z-(x+y); но можно ли увеличить его в той же строке?????

Нет, вам нужно то, что называется именующее выражение - потому что оператор ++ - это операция "быстрого доступа", которая в основном говорит:"скопируйте эту переменную, увеличьте ее на единицу, а затем используйте значение, которое вы запомнили". Вы можете только предварительно или после исправления увеличить (или уменьшить) переменную, а не результат.

По сути, вы пытаетесь проявить творческий подход к операторам автоматического приращения: не делайте этого. На этом пути лежат некоторые действительно неприятные проблемы. Видеть здесь: Почему x = ++x + x++ дает мне неправильный ответ?[^]