c++ 一个关于弦的基本问题一直困扰着我

ie3xauqp  于 2023-07-01  发布在  其他
关注(0)|答案(2)|浏览(92)
#include <iostream>
#include <string>
using namespace std;

int main(){

    string s, t;
    cin >> s;

    for(int i=0; i<s.length(); i++){
        if(s[i]!='R' || s[i]!='G' || s[i]!='B'){
        cout << "invalid input1";
        break;

    }

}
}

即使我输入了一个只包含R、G和B的字符串,它也会显示无效输入!我的逻辑错在哪里?
如果字符串只包含R、G和B,我希望它不会显示无效输入。Like RGBRGRBRBRGRGRGRGRGRGRGRGRGR..但即使它只包含R、G和B,也会显示无效输入。这是一个更大的Codeforces问题的一部分,我真的很紧张,我被困在这样一个基本的部分...

r1wp621o

r1wp621o1#

您正在使用OR运算符。
如果字符串为R,则s[i]!='G'的计算结果为true,并且由于使用了OR运算符,因此得到invalid output

vx6bjr1n

vx6bjr1n2#

尝试替换

if(s[i]!='R' || s[i]!='G' || s[i]!='B')

if(!(s[i]=='R' || s[i]=='G' || s[i]=='B'))

相关问题