如果用户输入C
、Y
、M
中的任何一个,我的代码就会打印#Color
> 字符。但是如果用户输入了W
、B
、G
,那么程序应该打印出#Black&White
。不幸的是,我的代码跳过了我的第一个 for 循环并直接打印出 #Black&White
,我做错了什么?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<char>colors;
int row, column, letters = 0;
cin>>row, column;
letters = row * column;
for(int i = 0; i < letters; i++)
{
char temp;
cin>>temp;
colors.push_back(temp);
}
for(int j = 0; j < letters; j++)
{
if(colors[j] == 'C' || colors[j] == 'Y' || colors[j] == 'M')
{
cout<<"#color"<<endl;
return 0;
}
}
cout<<"#Black&White"<<endl;
return 0;
}
最佳答案
cin>>row, column;
行中有两个表达式,逗号将它们分隔开,column
在这种情况下是无用的表达式。
你的意思可能是cin >> row >> column;
column
未初始化使用。如果它恰好取值 0
,您的第一个循环体将永远不会执行。请注意,以这种方式使用未初始化的变量会导致未定义的行为。
关于c++ - 我无法弄清楚为什么我的代码不起作用 - codeforce - Brain's Photos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39756898/