C ++ вычитать в строку с декрементацией

Во-первых, вот мой код:

std::vector<std::string> x = split("3 5", ' ');
int total = 0;
// then we loop over the elements
for(size_t i = 0; i < x.size(); ++i) {
// convert the string to an integer
int n = atoi(x[i].c_str());
total = total + n;
}

std::cout << "total = " << total << std::endl;

Итак, как вы можете видеть, это добавит 3 к 5. Однако я бы хотел сделать обратное (3 — 5).

Как я могу это сделать?
Спасибо за помощь.

-1

Решение

Код, который вы показали, выполняет в основном всю работу, так как вы вычитаете все заданные числа к первому, вы должны принять первый случай как особый, то есть когда i == 0,

...
for(size_t i = 0; i < x.size(); ++i) {
// convert the string to an integer
int n = atoi(x[i].c_str());
if (i == 0)
total = n;
else
total = total - n;
}
...
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]