您好,我阅读了有关家庭作业问题的指导原则,并明确表示这是家庭作业。这是家庭作业,我花了最后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);
}
我的老师说,只要代码被解释,我理解它是如何工作的那样没关系。任何帮助将非常感激。 谢谢。
答案 0 :(得分:1)
我建议
Sub InsertPicFromFile()
Dim cCell As Range
For Each cCell In Selection
If cCell.Value <> "" Then
On Error Resume Next
ActiveSheet.Shapes.AddPicture _
Filename:=cCell.Value, LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, _
Left:=cCell.Offset(ColumnOffset:=1).Left, Top:=cCell.Top, _
Width:=cCell.Height, Height:=200
End If
Next cCell
End Sub
for循环通常包括初始化(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)
}
),停止条件(i=0
)和增量(i < side
);你为什么不再使用i++
?
答案 1 :(得分:1)
你犯的第一个错误是:
int i; //not initialized!
/*...*/
i++;
并且你甚至没有在你的do-while条件下使用它。
所以while(j >= side);
&gt; 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
#
##
###
####
#####
######
#######
########
#########
##########
答案 2 :(得分:0)
while(j >= side);
应为while(i <= side);
j
应在外循环的每次迭代中初始化(j = i;
)int j=side;
是不必要的。一个友好的建议 - 描述性地命名您的变量和函数 - row
和column
比i
和j
好得多。
答案 3 :(得分:0)
他们上面的回答解决了你的问题,但让我告诉你一个更短的做事方式:
int main()
{
int side;
std::cout << "Enter a number: ";
std::cin >> side;
int row = 1;
do
{
int col = 0;
while (col++ != row)
{
std::cout << "#";
}
std::cout << "\n";
} while (row++ != side); //This way, the condition is checked (row != side), and then row is incremented
}