打印空心菱形前,我是先入手三角形、倒三角形和实心菱形,有了这些基础,我自己就练了练,从一直错到问问题,再到最后做出来,感觉自己的脑子都没了😮💨,(虽然我的答案看着烧脑,但是这对我一个小白来说,已经很开心完成了它😁)
我的答案
#include<stdio.h>
int main(){
int n, i, j;
scanf("%d",&n);
for(i=1;i<=n;i++) //打印第一行的空格和*
printf(" ");
printf("*\n");
for(i=2;i<=n+1;i++){ //如果输出3,这就是二至四行
for(j=i;j<=n;j++)
printf(" ");//先写空格,再将*写上去
printf("*");
for(j=1;j<=2*i-3;j++)//然后再写空格,写*,最后换行
printf(" ");
printf("*\n");
}
for(i=1;i<=n-1;i++){ //后面的倒三角的(除了最后一行)
for(j=1;j<=i;j++)
printf(" ");
printf("*");
for(j=1;j<=2*(n-1)-(2*i-1);j++)
printf(" ");
printf("*\n");
}
for(i=1;i<=n;i++) //最后一行
printf(" ");
printf("*\n");
return 0;
}
师兄给我的(嘻嘻😁)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j, n;
scanf("%d", &n);
n++;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n + i - 1; j++)//控制每行的每个位置打印什么
if (j == n - i + 1 || j == n + i - 1)//控制什么时候打印*号
printf("*");
else
printf(" ");
printf("\n");
}
for (i = 1; i < n; i++)//控制下三角形的行数
{
for (j = 1; j <= 2 * n - i - 1; j++)
if (j == i + 1 || j == 2 * n - i - 1)
printf("*");
else
printf(" ");
printf("\n");
}
//system("pause");
return 0;
}
希望这些对你有帮助😁