实心:
#include<stdio.h>
int main(){
int n,i,j;
printf("请输入一半行数n:");
scanf("%d",&n);
for(i=0;i<n;i++){//对于每整行进行分析
for(int j=0;j<n-i;j++){
printf(" ");
}
for(int k=0;k<2*i+1;k++){
printf("*");
}
printf("\n");//不要忘记换行
}
for(i=0;i<n+1;i++){
for(int j=0;j<i;j++){
printf(" ");
}
for(int k=0;k<2*(n-i)+1;k++){
printf("*");
}
printf("\n");
}
}
空心:
#include<stdio.h>
int main(){
int n,i,j;
printf("请输入一半行数n:");
scanf("%d",&n);
//第一行
for(int j=0;j<n-i;j++){
printf(" ");
}
printf("*");
printf("\n");
//上半部分
for(i=1;i<n;i++){
for(int j=0;j<n-i;j++){
printf(" ");
}
printf("*");
for(int k=0;k<2*i-1;k++){
printf(" ");
}
printf("*");
printf("\n");
}
//下半部分
for(i=0;i<n;i++){
for(int j=0;j<i;j++){
printf(" ");
}
printf("*");
for(int k=0;k<2*(n-i)-1;k++){
printf(" ");
}
printf("*");
printf("\n");
}
//最后一行
for(int j=0;j<i;j++){
printf(" ");
}
printf("*");
printf("\n");
}