我正在制作一个C ++程序,该程序输入一个两位数的数字,然后使用打印屏幕方法按字母顺序读取该数字。 我面临的问题是三元运算符。当我在下面执行代码时,输入为11时输出为1,输入为12时输出为0。我只发布程序的一段。我是捷径。 我的代码段:
switch(tens_position_value)
{
case 1:
{
if (unit_position_value == 1|| unit_position_value==2)
{
cout << (unit_position_value == 1) ? "Eleven" : "Twelve";
}
}
}
答案 0 :(得分:2)
<<
的{{3}}比?:
高,因此将打印unit_position_value != 1
(0或1)的结果而不是字符串。在此处添加括号:
cout << ((unit_position_value != 1) ? "Eleven" : "Twelve");
答案 1 :(得分:0)
我不确定您要获得什么,但是我假设如果tens_position_value = 1
和unit_position_value = 1
,您想打印"Eleven"
,而如果unit_position_value = 2
,您要打印"Twelve"
:
#include <iostream>
#include <string>
int main()
{
int tens_position_value = 1;
int unit_position_value = 1;
switch(tens_position_value)
{
case 1:
{
if (unit_position_value == 1|| unit_position_value==2)
{
std::string result = (unit_position_value == 1) ? "Eleven" : "Twelve";
std::cout << result << std::endl;
}
}
}
std::cout << "Bye ^_^\n";
}
在这种情况下,输出为"Eleven"
,如果将unit_position_value
的值更改为2,则会得到"Twelve"