贴吧图像
05/08/2017

*


***


*****


 ***


  *

这个怎么做


更新时间:05/08/2017
回复(4)
3675?1464853545
张迅晖 3年前

如果题目没有错,那直接按照格式cout每一行就好了,没有什么规律可循

3675?1464853545
张迅晖 3年前
3675?1464853545
张迅晖 3年前
<p> 如果第三行三个星号移动到中间那么代码是这样的: </p> <p> <p style="font-size:11px;font-family:Menlo;color:#D12F1B;"> #include &lt;iostream&gt; </p> <p style="font-size:11px;font-family:Menlo;color:#78492A;"> #include &lt;math.h&gt; </p> <p style="font-size:11px;font-family:Menlo;color:#BA2DA2;"> using namespace std; </p> <p style="font-size:11px;font-family:Menlo;"> <br /> </p> <p style="font-size:11px;font-family:Menlo;color:#008400;"> void printLine(int n, int i) // 输出一行,n表示一共多少行,i表示第几行 </p> <p style="font-size:11px;font-family:Menlo;"> { </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; int spaceNum = std::abs(2 * i - 1 - n); </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; int starNum = n - spaceNum; </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; for(int j = 1; j &lt;= n; j++) </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; { </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; if(j &lt;= spaceNum / 2 || j &gt; spaceNum / 2 + starNum) </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; { </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cout &lt;&lt; " "; </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; } </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; else </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; { </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cout &lt;&lt; "*"; </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; } </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; } </p> <p style="font-size:11px;font-family:Menlo;color:#008400;"> &nbsp; &nbsp; cout &lt;&lt; endl; // 输出每一行最后的回车换行符 </p> <p style="font-size:11px;font-family:Menlo;"> } </p> <p style="font-size:11px;font-family:Menlo;"> <br /> </p> <p style="font-size:11px;font-family:Menlo;"> int main(int argc, const char * argv[]) { </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; int n = 7;&nbsp; // 表示一共多少行 </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; for(int i = 1; i &lt;= n; i++) // 循环输出每一行 </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; { </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; &nbsp; &nbsp; printLine(n, i); </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; } </p> <p style="font-size:11px;font-family:Menlo;"> &nbsp; &nbsp; return 0; </p> <p style="font-size:11px;font-family:Menlo;"> } </p> </p>

main函数中的n表示行数(也表示最多的一行星号数量),你的题目中是5,需要自己改一下

3675?1464853545
张迅晖 3年前

首先你这个题目是不是打错了,第四行是不是三个*同时向右移动一格?

0?1470885445
登录后可添加回复
贴吧图像
吧主:
黄天翔
回答:3
喜欢C++的同学欢迎交流好的学习方法!!
问题和建议
还能输入50个字符 Submit

加入QQ群

关注微信APP


×