我有一个作业,我必须在c ++中创建一个以给定样式绘制六边形的控制台程序。我遇到的问题是;永远不会输入我的For循环,我无法弄清楚原因。这是我遇到问题的代码片段。
void display()
{
int counter=0;//var that keeps track of the layer that is being drawn
for(int i=0;i>=size;i++)//spaces before first layer of hexagon
{
cout<<" ";
}
for (int k=0; k>size;k++)//top layer of hexagon
{
cout<<"_";
}
cout<<endl;//ends the first layer
for (counter; counter>=size-1;counter++)//outer loop for the top half that controls the size
{
for( int j=0;j>(size-counter);j++)//adds spaces before the shape
{
cout<<" ";
}
cout<<"/";
for( int p=0; p>(size+(counter*2));p++)//loop for the hexagon fill
{
cout<<fill;
}
cout<<"\\"<<endl;
}
for(counter;counter==0;counter--); //loop for bottom half of the hexagon
{
for( int j=0;j>(size-counter);j++)//adds spaces before the shape
{
cout<<" ";
}
cout<<"\\";
for( int p=0; p>(size+(counter*2));p++)//loop for the hexagon fill
{
cout<<fill;
}
cout<<"/"<<endl;
}
cout<<"\\";
for(int r=0; r>=size;r++){cout<<"_";}
cout<<"/"<<endl;
}
在我的main()期间,程序中的“大小”和“填充”被选中 我可能错过了一些非常简单的事情,但我一直在努力解决这个问题。任何帮助都会得到很大的帮助!
答案 0 :(得分:4)
您的循环使用>
并从0开始。您似乎想要<
。例如
for(int i=0;i<size;i++)//spaces before first layer of hexagon
{
cout<<" ";
}
答案 1 :(得分:3)
我不确定您的size
变量的内容是什么,但看起来您的循环条件错误了:
for(int i=0;i>=size;i++)
可能应该是:
for(int i=0;i<size;i++)
其他循环也是如此。
答案 2 :(得分:1)
假设您的size
是正数,它会根据您的情况运作。
在您的条件中将>
条件更改为<
。
答案 3 :(得分:1)
在您的条件下,反转&gt;到&lt;
&LT;意味着自卑,你想做一个
for i = 0; if i < size; i++
你做
for i = 0 ; if i > size ; i ++
如果大小优于i(0),则循环将永远不会触发
答案 4 :(得分:1)
不是所有的&lt;和&gt;逆转吗?因为
(int k=0; k>size;k++)
对我毫无意义。
答案 5 :(得分:1)
for
循环是而循环,而不是直到循环。
C ++只有而循环(的含义只要):
for (int i=0; i<10; ++i)
....
int i=0;
while (i<10) {
....
++i;
}