聖誕樹巢狀迴圈問題(c語言)

Mars
題目
請試著輸入一數字n , 並印出一棵豪華聖誕樹。
樹葉由三層一組,底部由 n2-1 的'^'開始建立起來。
然後建了三層后就變成 (n-1)2-1 的 '^'。
重複動作直到最上層的 '^'。
'^'號個數為奇數。
最頂部有一顆'*'號。
樹印好后還有高度為 n-2 ,厚度為 n-2 的 樹幹。符號為'#'。

小弟想了許久高度不會隨使用者輸入變更
例如n=5 應為1 3 5三層
n=7 應為1 3 5 7 9 四層
請問各位大大幫忙
謝謝




#include<stdio.h>

int main(){
	int i,j,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		if(i<n){
			printf(" ");
		}else{
			printf("*");
		}
	}
	printf("\n");
	for(i=1;i<=n/2+1;i++){
        for(j=1;j<=n-i;j++){
        	printf(" ");
        }
        for(j=1;j<=2*i-1;j++){
        	printf("^");
		}
        printf("\n");
    }
    for(i=1;i<=n/2+1;i++){
    	for(j=1;j<=n-i-1;j++){
    		printf(" ");
		}
		for(j=0;j<=i*2;j++){
			printf("^");
		}
		printf("\n"); 
	}
	for(i=1;i<=n/2+1;i++){
		for(j=1;j<=n-i-2;j++){
			printf(" ");
		}
		for(j=0;j<=n/2+2*i;j++){
			printf("^");
		}
		printf("\n");
	}
	for(i=1;i<=n-2;i++){
		for(j=1;j<=n/2+1;j++){
			printf(" ");
		}
		for(j=1;j<=n-2;j++){
			printf("#");
		}
		printf("\n");
	}
	return 0;
} 

Mars
已自行解出來
感謝各位
參考程式碼如下

#include<stdio.h>

int main(){//印最上面星星// 
	int i,j,k,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		if(i<n){
			printf(" ");
		}else{
			printf("*");
		}
	}
	printf("\n");
	 
	for(i=1;i<=n-2;i++){//印聖誕樹高度(n-2)// 
	    for(j=1;j<=n-i;j++){//印空格每層遞減1// 
	    	printf(" ");
	    }
	    for(j=1;j<=2*i-1;j++){//印樹葉每層遞增2// 
	    	printf("^");
		}
		printf("\n");
		for(j=1;j<=n-i-1;j++){
			printf(" ");
		}
		for(j=1;j<=i*2+1;j++){
			printf("^");
		}
		printf("\n");
		for(j=1;j<=n-i-2;j++){
			printf(" ");
		}
		for(j=1;j<=2*i+3;j++){
			printf("^");
		}
	    printf("\n");
	}
	for(i=1;i<=n-2;i++){//印樹幹(n-2)// 
		for(j=1;j<=n/2+1;j++){
			printf(" ");
		}
		for(j=1;j<=n-2;j++){
			printf("#");
		}
		printf("\n");
	}
	return 0;
}

回到頂部