控制台c ++中的协调系统?

时间:2013-09-03 20:04:34

标签: c++

我不知道我的错误。看起来我忘记了最基本的东西。

int xy [2];
cout << "Input X: ";
cin >> xy[0];
cout << "\nInput Y: ";
cin >> xy[1];
for ( int y = 0; y < 10; y++ )
{
    for ( int x = 0; x < 10; x++)
    {
        if ( x = xy[0] + 5 && y == xy[1] + 5)
        {
            cout << "°";
        }
        else
        {
            cout << "+";
        }
    }
    cout << "\n";
}

3 个答案:

答案 0 :(得分:3)

你可能错过了这个:

if ( x == xy[0] + 5 && y == xy[1] + 5)
        ^ equality

这就是你获得无限循环的原因

=是赋值运算符,而==用于检查相等性

x= xy[0] + 5实际上将x分配给一个值,而不是比较因此永远不会结束内循环

答案 1 :(得分:0)

这是你想要的输出吗?

#include <iostream>

using namespace std;

int main()
{
  int xy [2];
  cout << "Input X: ";
  cin >> xy[0];
  cout << "\nInput Y: ";
  cin >> xy[1];
  for (int y = 0; y < 10; y++ )
  {
      for (int x = 0; x < 10; x++)
      {
        if (x == xy[0] + 5 && y == xy[1] + 5)
        {
            cout << "°";
        }
        else
        {
            cout << "+";
        }
      }
      cout << endl;
  }
}

执行程序.... $演示

Input X: 
Input Y: ++++++++++
++++++++++
++++++++++
++++++++++
++++++++++
++++++++++
++++++++++
++++++++++
++++++++++
++++++++++

答案 2 :(得分:0)

也许你应该在第10行写这个(不要使用赋值运算符):

if ( x == xy[0] + 5 && y == xy[1] + 5)