嗨,我阅读了有关家庭作业问题的指导原则,并明确表示这是家庭作业.这是家庭作业,我花了最后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条件下使用它.
所以虽然(j> = side); >而(i> = side);
实际上,这也不是真的.由于side是输入,你希望我检查它是否小于输入.所以它是时候(我< 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
#
##
###
####
#####
######
#######
########
#########
##########