可能是睡眠不足,
我没有得到矩形构造的顺序。先长度然后高度?
如果cin>>
指示的唯一*
为cout<<
,为什么要将"*"
值用作#include <iostream>
using namespace std;
void drawRectangle ( int l, int h )
{
for ( int line (0); line < h; line++ )
{
for ( int column (0); column < l; column++ )
{
cout << "*";
}
cout<<endl;
}
}
int main()
{
int length, height;
cout << "Length for rectangle : ";
cin >> length;
cout << "Height for rectangle : ";
cin >> height;
drawRectangle (length, height);
return 0;
}
的输出量?
我知道这对很多人来说都是菜鸟,所以请解释一下,就像我5岁一样:D
这段代码再次以英文编辑。感谢您指出该错误,需要更多咖啡:/
#include <iostream>
using namespace std;
void drawRectangle ( int l, int h )
{
for ( int line (0); line < h; line++ ) //this is the outer loop
{
for ( int column (0); column < l; column++ ) //this is the inner loop
{
cout << "*";
}
cout<<endl; //the length is written then jumps here to break.
/*So, the outer loop writes the length,from left to right, jumps to the cout<<endl; for a line break, then the inner loop writes the height under each "*" that forms the length?/*
更新1:
感谢所有回答的人,即使代码搞砸了。我只想确保理解:
{{1}}
更新2:我的答案就在这里 http://www.java-samples.com/showtutorial.php?tutorialid=326
我猜这个谜就解决了!感谢所有回答我问题的人:)感谢您的帮助!
答案 0 :(得分:3)
它实际上并没有构造任何东西,因为它不能编译。 :/
将drawRectangle
更改为以下内容(通过将大括号放在应有的位置)将使其编译并运行(然而,您认为长度和高度是重新开始的 ):
void drawRectangle( int l, int h )
{
for ( int column (0); column < l; column++ )
{
for ( int line (0); line < h; line++ )
{
cout << "*";
}
cout<<endl;
}
}
假设l
为5,h
为4(drawRectangle(5, 4)
)。外部for
循环将迭代5次,创建5行。现在,对于每个行,内部for
循环迭代4次,并在每次迭代时打印'*'
(因此每行打印****
)。内部for
循环终止后,将打印一个新行,外部行继续,直到它迭代5次。
你得到:
****
****
****
****
****
答案 1 :(得分:1)
{
语法在循环中有点不对。
要回答你的问题,矩形是从第1列开始绘制的数字*,绘制整行,如下所示:
* * *
* * *
* => * => *
* * *
* * *
这是一个长度= 3和高度= 5的矩形。
答案 2 :(得分:1)
你有非常混乱的代码。
void drawRectangle(int l, int h)
{
for ( int column = 0; column < l; column++ )
{
for ( int line = 0; line < h; line++ )
{
cout << "*";
}
cout<<endl;
}
}
由于控制台输出从左向右,您必须先输出lenth。您可以通过将cout << "*"
放入内部循环来完成此操作。外部循环在写入长度后放置换行符。输出看起来像:
****************
****************
****************
****************
长度= 16且高度= 4