如何为明星计划包括空间
Posted
技术标签:
【中文标题】如何为明星计划包括空间【英文标题】:How to include spaces for a star program 【发布时间】:2019-10-16 00:36:57 【问题描述】:问题要求使用嵌套的 while 循环创建如下所示的模式。
********
********
********
********
********
********
********
********
我可以打印出星星,但它们看起来像这样:
********
********
********
********
********
********
********
********
有没有办法在星星的开头包含空格而不破坏图案的其余部分?
#include <iostream>
using namespace std;
int main()
int star=0;
int n=8;
int space=n-1;
int counter=0;
while(counter<8)
while(star<n)
star=star+1;
if(counter%2==0)
cout<< "*";
else cout<<"*";
counter=counter+1;
star=0;
cout<<endl;
cout<<endl;
return 0;
(注意:我试图做的是取行号,如果是奇数则添加一个空格) 谢谢大家的回答!
【问题讨论】:
所以我才意识到你看不到星星。星星在一个 8×8 的矩形中,偶数行保持不变,但奇数行缩进。我不确定如何添加空格。对此感到抱歉。 您的 if 语句的两个分支都打印星号,因此永远不会打印空格。也许还有其他问题,但这个问题似乎很突出。 ***.com/editing-help 应该可以帮助您解决edit您的问题,使其按您的意愿出现。当您使用它时,请摆脱不必要的格式、空行等。 查看您的if
code 并解释“then”和“else”之间的区别。我没有看到。
除了实际问题之外,请注意有for
循环,它更适合您只想计数的上下文。一个更短的版本:for(int i=0; i<8; i++) if(i%2 == 0) cout << string(2, ' '); cout << string(8, '*') << endl;
.
【参考方案1】:
使用更少的空间检查此代码。并根据需要提供输出。
#include <iostream>
using namespace std;
int main()
int n=8;
while(n--)
int m = 8;
if(n%2!=0)
while(m--)
cout<<"*";
else
cout<<" ";
while(m--)
cout<<"*";
cout<<endl;
return 0;
【讨论】:
【参考方案2】:#include <iostream>
using namespace std;
int main()
int star = 0;
int n = 8;
int space = n - 1;
int counter = 1;
while (counter < 8)
if (counter % 2 == 0) // If statement should be before line printing code
cout << " ";
while (star < n)
star = star + 1;
cout << "*";
counter = counter + 1;
star = 0;
cout << endl; // cout was doubled
return 0;
【讨论】:
以上是关于如何为明星计划包括空间的主要内容,如果未能解决你的问题,请参考以下文章