您好,我是c +的新手,我需要您的帮助。 这是我的模式:
*********
*******
*****
***
*
***
*****
*******
*********
我尝试为此编写代码,但它没有给出所需的结果。 有人可以帮我吗? 这是我的代码:
#include<bits/stdc++.h>;
using namespace std;
int main()
{
int n=5,j,k;
bool o=false,t=false;
for(int i=((2*n) - 1); i >= -((2*n)-1); i -=2)
{
for(j=10-abs(i); j >0;j-=2)
{
cout << " ";
}
for(k=abs(i);k>0;k--)
{
cout << "*";
}
cout << endl;
}
return 0;
}
我的输出是:
*********
*******
*****
***
*
*
***
*****
*******
*********
注意:有两行,其中一行*
,而所需的输出只有一行,其中一行*
。
答案 0 :(得分:1)
答案 1 :(得分:0)
这是因为你每次用2减去你的星星,然后减去它。我的意思是。举个例子:
*** abs(3) = 3 stars
* abs(3-2) = abs(1) = 1 star
然后再次减去2,结果为-1所以..
* abs(3-2-2) = abs(3-4) = abs(-1) = 1 star
*** abs(3-2-2-2) = 3 stars