首页 > 解决方案 > 为什么 if 语句没有打印出字符串?cpp

问题描述

我想在字符串中打印偶数和奇数,而不是在二进制中打印 true false | 1 / 0; 为什么输出仍然打印布尔值?

int main() {
    printf("enter the two numbers\n");
    int a;
    int b;
    cin >> a >> b;

    string arr[9] = {"one","two","three","four","five","six","seven","eight","nine"}; 
    for (int i = a; i <= b; i++)
    {
        if(i <=9){
           cout << arr[i-1] << "\n";
        }else{
           cout << ( i%2 == 0)? "even" : "odd"; // print out 1/0 but did not print out the even and odd
           cout << "\n";
        }
    }

    return 0;
}

输出:

enter the two numbers
9 16
nine
1
0
1
0
1
0
1

标签: c++arraysstringprinting

解决方案


您缺少包含表达式的括号。三元的优先级低于<<

cout << (( i%2 == 0)? "even" : "odd");

推荐阅读