weixin_50818442 2022-04-16 17:37 采纳率: 100%
浏览 54
已结题

c++,有关for循环,为什么这个最后会变成死循环

问题遇到的现象和发生背景
#include<iostream>
using namespace std;
void line1(int x,char y)
{
    int i = 1;
    for (i;i <= x;i++)
    {
        cout << y;
    }
    cout << endl;
}
void line2(int x, char y)
{
    int i = 1;
    for (;i <= x;i++)
    {
        while (i >= 1 && i < (x / 2 + 1))
        {
            cout << " ";
        }
        while (i = (x / 2 + 1))
        {
            cout << y;
        }

    }
    cout << endl;
}
void change(int x, char y)
{
    int i ;
    for (i=1;i <= x;i++)
    {
        while (i == 1)
        {
            line1(x, y);
        }
        while ((i > 1) && (i < x / 2 + 1))
        {
            line2(x, y);
        }
        while (i == x / 2 + 1)
        {
            line1(x, y);
        }
        while ((i > x / 2 + 1) && (i < x))
        {
            line2(x, y);
        }
        while (i = x)
        {
            line1(x, y);
        }
        while(i > x)
        {
            break;
        }

    }
}
int main()
{
    int a=4;
    char b;
    cout << "汉字以多少点阵方式显示,16 * 16输入16, 32 * 32输入32,依次类推:" << endl;
    cin >> a;
    cout << "请输入构成汉字的基本字符号是:" << endl;
    cin >> b;
    change(a, b); 
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • Shawn0691302 2022-04-16 18:33
    关注

    感觉是变量i在栈里被一直重置为1了,导致change第一个for 无限循环了(i <= x)i被重置1,条件永远成立。猜测的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月11日
  • 已采纳回答 5月3日
  • 创建了问题 4月16日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加