if (calculation == "help") {
cout << "add, subtract, multiplication, divide\nsquare root, sin, cos, power\n";
}
else if (calculation == "add") {
cout << num1 << " + " << num2 << " = " << num1 + num2 << endl;
}
else if (calculation == "subtract") {
cout << num1 << " - " << num2 << " = " << num1 - num2 << endl;
}
else if (calculation == "multiplication") {
cout << num1 << " x " << num2 << " = " << num1 * num2 << endl;
}
else if (calculation == "divide") {
cout << num1 << " / " << num2 << " = " << num1/ num2 << endl;
}
else if (calculation == "square root") {
cout << "The square root of the first number is " << sqrt(num1) << ". The square root of the second number is " << sqrt(num2) << "." << endl;
}
else if (calculation == "sin") {
cout << "The sine of the first number is " << sin(num1) << ". The sine of the second number is " << sin(num2) << "." << endl;
}
else if (calculation == "cos") {
cout << "The cosine of the first number is " << cos(num1) << ". The cosine of the second number is " << cos(num2) << "." << endl;
}
else if (calculation == "power") {
cout << num1 << " to the power of " << num2 << " = " << pow(num1, num2) << endl;
}
У меня есть идея исправить эти операторы if, например, создать карту или словарь. Я также не верю, что в C ++ можно использовать строки с операторами switch. Любая помощь очень ценится!
РЕДАКТИРОВАТЬ: Я смог использовать карту.
map<string, int> Choices = {
{ "help", 0 },
{ "add", 1 },
{ "subtract", 2 },
{ "multiply", 3 },
{ "divide", 4 },
{ "square root", 5 },
{ "sine", 6 },
{ "cosine", 7 },
{ "power", 8 }
};
it = Choices.find(choice);
i = it->second;
Если есть более быстрый способ сделать это, сообщите мне. Спасибо за все ответы!