#include<iostream>
using namespace std;
int main()
{
int n;
cout << "输入要打印菱形每边*的个数:" << endl;
cin>>n;
int i,j;
for(i=1;i<=n;i++) //第I行,行不断的增加
{
for(j=1;j<=30-2*i;j++) //第一次循环控制前面空格的个数
cout<<" "; //输出空格
for(j=1;j<=2*i-1;j++) //第二次循环控制输出*的个数
cout<<"* ";
cout<<endl; //菱形上半部分
}
for(i=1;i<=n-1;i++) //下半部分
{
for(j=1;j<=30-2*(n-i);j++) //一定要找好关系
cout<<" ";
for(j=1;j<=2*(n-i)-1;j++)
cout<<"* ";
cout<<endl; //每行输出的方法
}
system("pause");
return 0;
}
输出结果:
也可以用下面的代码实现:
#include<iostream>
using namespace std;
int main()
{
int n;
cout << "请输入要打印菱形的每边*的个数:" << endl;
cin >> n;
//菱形上半部分输出;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n-i-1; j++)
cout << " ";
for(int j = 0; j < 2*i + 1; j++)
cout << "*" ;
cout << endl;
};
//下半部分输出;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < i + 1; j++)
cout << " ";
for(int j = 0; j < 2*(n - i) - 3; j++)
cout << "*";
cout << endl;
}
system("pause");
return 0;
}
输出结果为: