目前主要分為三個專欄,后續還會添加:
? ? ? ? 專欄如下:?? ? ? ? ? ? ? ??C語言刷題解析? ? ? ?C語言系列文章? ? ? ?我的成長經歷
感謝閱讀!
初來乍到,如有錯誤請指出,感謝!
這道題沒搞懂 也沒找到視頻
水了篇文章
大家有思路可以放到評論區
或者有視頻也行
放個鏈接給我 我去學一學
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>//思路:我們可以觀察到樹葉部分是由一些相同的三角形構成的,
//樹的底部就是處于中間的所輸入n層的n個*,所以大體上我們就可以分為2部分來打印int main()
{//一、先打印上面“樹葉”部分int n = 0; //層數scanf("%d", &n);int i = 0; //循環控制層數int m = 3 * n; //用于控制打印空格,不直接用3*n,//而是重新定義一個變量,是因為在打印過程中每一層要打印的空格不同,我們需要對m進行變化for (i = 1; i <= n; i++){//打印第i層的第一行int space = m - 1; //三角形前面的空格while (space--){printf(" ");}int k = 0; //因為打印過程中相鄰三角形會出現"* "for (k = 0; k < i; k++){printf("* "); //打印每層三角形的第一行}printf("\n");//打印第i層的第二行int space2 = m - 2; //空格少1while (space2--){printf(" ");}for (k = 0; k < i; k++){printf("* * "); //到了第二行相鄰三角形間變為了"* * "}printf("\n");//打印第i層的第三行int space3 = m - 3; //空格少1while (space3--){printf(" ");}for (k = 0; k < i; k++){printf("* * * "); //第三行變成了"* * * "}printf("\n");m = m - 3; //每層少打3個空格}//二、底部int bottom = 0;for (bottom = 0; bottom < n; bottom++){int j = 0;for (j = 0; j < 3 * n - 1; j++){printf(" ");}printf("*\n");}return 0;
}
??