我不知道我的错误。看起来我忘记了最基本的东西。
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";
}
答案 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)