1.我一开始空格不会加,还找不到空格的规律。
2.解决方法:把菱形分成上下两个三角,就能找到规律:上三角空格是三角的数总行数-行号,数是行号X2-1。如:i 空
1 4 1
2 3 3
3 2 5
4 1 7
5 0 9
下三角是按上三角的方法写一个,再调过来,但是行数要比上三角少一行。下三角行数是总行数/2。
3.执行后遇到问题空格数不对,后来发现循坏次数多执行了几次,上三角的行数我误用了总行数n,应该用n/2+1表示。
#include<iostream>
using namespace std;
int main()
{
//freopen("xxx.in","r",stdin);
//freopen("yyy.out","w",stdout);
int n,m=1,a=1,b;
cin >> n;
for(int i=1;i<=n;i++)
{
for(int k=1;k<=n/2+1-i;k++)
{
cout << " ";
}
for(int j=1;j<=a;j++)
{
cout << '*';
}
cout << endl;
if(m<n)
{
m+=2;
a+=2;
}
else
break;
}
m=1,a=n-2;
b=n/2;
for(int i=1;i<=b;i++)
{
for(int k=1;k<=i;k++)
{
cout << " ";
}
for(int j=1;j<=a;j++)
{
cout << '*';
}
cout << endl;
a-=2;
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
AcWing《CCF-CSP认证辅导课》拼团优惠!https://www.acwing.com/activity/content/introduction/39/group_buy/205418/