Во-первых, вот мой код:
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).
Как я могу это сделать?
Спасибо за помощь.
Код, который вы показали, выполняет в основном всю работу, так как вы вычитаете все заданные числа к первому, вы должны принять первый случай как особый, то есть когда 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;
}
...
Других решений пока нет …