用循环方式
#include<stdio.h>
int main()
{
int i=0,j=0,k=0,t=0;
for(i=0; i<=3; i++){
for(j=0; j<=20-i; j++) //先输出'*'前的' '{
printf(" ");
}for(k=0; k<=2*i; k++) // 输出'*'{
printf("*");
}printf("\n");
}t=j;for(i=0; i<=2; i++){
for(j=0; j<=t+i; j++) //比上一行多两个' '{
printf(" ");
}for(k=0; k<=4-2*i; k++) / /比上一行少两个'*',并且4=2*2{
printf("*");
}printf("\n");
}system("pause");
return 0;
}
这个方式太过复杂不易理解,下面的数组方式比较好理解
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[]={"*****************"};char arr2[]={" "};int i=0,j=0,s=strlen(arr1);i=j=s/2;
while(i!=0){
arr2[i]=arr1[i];arr2[j]=arr1[j];i--;j++;puts(arr2);
}
while(i<=j){
i++;j--;arr2[i]=' ';arr2[j]=' ';puts(arr2);
}
system("pause");
return 0;
}