c++ - 连续 for 循环不会终止 C++

标签 c++ if-statement for-loop

多年来我也一直在努力寻找这个问题,但我似乎无法理解它。 当输入大于 2 的数字时,程序只是不断地输出 ' ' 或 '*' 而不会终止,并给出正确的输出。

谁能看出我做错了什么?这是我的代码:

#include <iostream>
#include<cmath>
using namespace std;


int main()
{

     int xx; 

cout << "Enter the Height (odd positive numbers only): " << endl; 
cin >> xx; 

for(float y; y < xx; y++)
{
    for(float x; x < xx; x++)
    {
        x = abs( x - ( xx / 2 ) ); 
        y = abs( y - ( xx / 2 ) );



    if( ( x + y ) <= ( xx / 2 ) )

        cout << '*';
    else
        cout << ' ';
    } 
cout << endl;
} 
return 0;

最佳答案

首先,存在未定义的行为。 xy 需要初始化。

其次,您的 xy 永远不会大于 xx(如果 xx>=2 ) 因为你有:

x = abs( x - ( xx / 2 ) ); 
y = abs( y - ( xx / 2 ) );

因此无限循环。

关于c++ - 连续 for 循环不会终止 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15562400/

相关文章:

python - 如何为乘法表创建 while 循环?

无法用c中的for循环写入文本文件

c++ - 从函数返回 unique_ptr

c++ - 使用 Contour Area-OpenCV 时的断言错误

C++ 定义 3 个参数但只使用 2 个

javascript - 为什么if语句在这个else if下面执行呢?

c - evp_crypt 在 c 中的 for 循环中不起作用

c++ - 如何减少 visual studio 非托管代码中的发布构建时间?

javascript - 尝试学习并运行一个简单的 if-else-if 脚本,但没有得到结果

python - Jinja2 模板未正确呈现 if-elif-else 语句