本題要輸出星星樹,輸入兩數代表第一層的高度與總共有幾層,最後也要輸出粗度為(((最後一行數量-1)/2+1)/2)*2+1
直接來個範例好了
輸入:==3 4==
輸出:
*
***
*****
***
*****
*******
*********
*****
*******
*********
***********
*************
*******
*********
***********
*************
***************
*****************
*********
*********
*********
*********
#include <stdio.h>
void drawtree(int n,int m){
int alllong=(m*2-1)+((n+m-2)*2); //算最後一層的星星數量
int alllonghalf=(alllong+1)/2;
int i,j,k,tall=n,starn=1;
for(i=0;i<m;i++){
for(j=0;j<tall;j++){
for(k=0;k<(alllonghalf-(starn+1)/2);k++){
printf(" ");
}
for(k=0;k<starn;k++){
printf("*");
}
starn += 2;
printf("\n");
}
tall++;
starn -= ((tall-2)*2);
}
for(i=0;i<m;i++){
for(k=0;k<(alllonghalf-((((alllong-1)/2+1)/2)*2+2)/2);k++){
printf(" ");
}
for(k=0;k<(((alllong-1)/2+1)/2)*2+1;k++){
printf("*");
}
printf("\n");
}
}
int main(){
int x,y;
while(scanf("%d %d",&x,&y)!=EOF) drawtree(x,y);
return 0;
}