gpt4 book ai didi

c++ - 嵌套 For 循环到 Do while 循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:03 24 4
gpt4 key购买 nike

您好,我阅读了有关家庭作业问题的指南,上面说要明确说明这是家庭作业。这是作业,我花了最后 45 分钟一遍又一遍地尝试。我碰壁了,需要帮助。

我的任务是将这段来自双 For 循环的代码转换为嵌套在 for 循环中的 while 循环。我已经成功完成了。但是,第三部分是采用该代码并将外部 for 循环变成 do while 循环。如果输入是“4”,则输出需要每行递增一个“#”

#
##
###
####

下面是我编写的代码,我需要将外部 for 循环变成 do while 循环:

int main()
{
int side;

cout << "Enter a number: ";
cin >> side;

for (int i = 0; i < side; i++)
{
int j = i;
while(j >= 0)
{
cout << "#";
j--;
}
cout << "\n";
}
}

这是我目前的尝试:

int main()
{
int side;
int i;

cout << "Enter a number: ";
cin >> side;
int j=side;
do
{
while(j >= 0)
{
cout << "#";
j--;
}
cout << "\n";
i++;
}
while(j >= side);
}

我的老师说只要解释了代码并且我明白它是如何工作的就可以了。任何帮助将非常感激。谢谢。

最佳答案

你犯的第一个错误是:

int i; //not initialized!
/*...*/
i++;

而且您甚至没有在 do-while 条件下使用它。

所以 while(j >= side); > while (i >= side);

事实上,这也不是真的。由于 side 是输入,因此您需要 i检查输入是否更小而不是更大。所以它是while (i < side);

另一件事是int j=side; , 当你递减 j它永远不会重置,所以你必须将它设置到你的 do-while 循环中并用 i 初始化它而不是侧面....

无论如何,这是完整的代码:

#include <iostream>
using namespace std;

int main()
{
int side;
int i = 0;

cout << "Enter a number: ";
cin >> side;
do
{
int j = i;
while (j >= 0)
{
cout << "#";
j--;
}
cout << "\n";
i++;
} while (i < side);

return 0;
}

示例输出:

Enter a number: 10
#
##
###
####
#####
######
#######
########
#########
##########

关于c++ - 嵌套 For 循环到 Do while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40017537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com