#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的用途,由于尾部后两行与首部前两行是相反关系。所以我这里用了取余和条件表达式来做到它。
#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;
}