c++程序作业 编一个程序,在屏幕上显示如下图形(图形的层数读者自行设定):

2024-12-01 10:57:22
推荐回答(2个)
回答1:

#include 
using namespace std;
int main()
{
int row,col,sty,sty2,i=0;
int star[5]={1,3,5,3,1};
    for (row=1;row<=5;row++) // 控制行数
    {
if(i<=2){
            for(sty=3;sty>=row;sty--) // 控制外观
          cout<<"  ";
        for(col=star[i];col>=1;col--) // 控制星号
      cout<<"★";
}
else if(i>=3){
for (sty2=8%row?3:2;sty2>=1;sty2--) // 原理同上
   cout<<"  ";
 for (col=star[i];col>=1;col--)   // 原理同上
   cout<<"★";
}

   cout<    i++;
    }
return 1;
}


注:这里要解释下8%row?3:2的用途,由于尾部后两行与首部前两行是相反关系。所以我这里用了取余和条件表达式来做到它。

回答2:

#include
using namespace std;

int main()
{
int i,j,n = 0;
cin >> n;
for(i = 1;i <= n/2; i++){
for(j = i; j <= n / 2; j++)
cout << " ";
for(j = 0; j < i * 2 - 1; j++)
cout << "*";
cout << endl;
}
for(i = n; i > n/2; i--){
for(j = i; j < n; j++)
cout << " ";
for(j = 0; j < i * 2 - n; j++)
cout << "*";
cout << endl;
}
cout << endl;

return 0;
}