C++中恒星的正三角形和倒置三角形



我需要创建一个上下三角形和一个法线三角形,它应该是这样的:

***********
 *********
  *******
   *****
    ***
     *          
     *
    ***
   *****
  *******
 *********
***********

我创造了一些东西,但我得到了5条新的线,而不是另一个三角形:

***********
 *********
  *******
   *****
    ***
     *


     *
    ***
   *****
  *******
 *********
***********

这是C++代码,希望有人能解决我的问题:

int n,i,j;
cout<<"Give the Number N of Stars ";
cin>>n;
for(i=1; i<=n; i++)
{    
    for(j=1;j<=i-1;j++)
        cout<<" ";
     for(j=i;j<=n-i+1;j++)
        cout<<"*";
     cout<<"n";
}
for(i=1;i<=n;i++)
{    
    for(j=i;j<=n-1;j++)
        cout<<" ";
    for(j=1;j<=2*i-n;j++)
        cout<<"*";
    cout<<"n";
}

您的外循环使i1变为n(意味着n行),但行数少于n行,因为每行的恒星数减少2,而不是1。额外的行就是这样的结果。额外的行中没有恒星,因为在这个循环中:

for(j=i;j<=n-i+1;j++)
    cout<<"*";

一旦i超过n的一半大小,循环将不会打印任何星,因为j的初始值大于j的终止条件。

最新更新