我无法弄清楚为什么我的代码不能工作 - codeforce - Brain的照片

时间:2016-09-28 20:17:35

标签: c++

如果用户输入了#ColorCY字符中的任意一个,则此代码编程为打印M。但是,如果用户输入WBG,则该程序会打印出#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;
}

1 个答案:

答案 0 :(得分:2)

cin>>row, column;中有两个表达式逗号分隔它们,column在这种情况下是无用的表达式。

您可能意味着cin >> row >> column;

column未经初始化使用。如果恰好采用值0,则第一个循环的主体永远不会执行。请注意,以这种方式使用未初始化的变量可能会导致未定义的行为。