標籤:
同http://www.cnblogs.com/MichaelLee2015/p/4403005.html
int main(){ int h;//表示菱形的高的一半,也就是使用者輸入的數 printf("請輸入xxx我也不知道這裡怎麼說\n");//提示使用者輸入一個數 scanf("%d",&h);//把使用者的輸入讀取進來並存到h中 //上半部分 //思路:我們想輸出菱形,要考慮每一行的星號前面有幾個空格,每一行有幾個星號 //經過推(數)理(數)我們發現,星號最多一行的星號個數為 (2h-1) 個 //第一行前面空格個數為h-1;第i行(i<h)空格個數為h-i //我們以h=6為例,星號最多的一行是第6行,*個數為11個,第6行前面是沒有空格的 //第一行前面有5個空格 for (int i = 1; i <= h; i++)//第幾行 { for (int j = 1; j <= h - i; j++)//輸出該行的空格 { printf(" ");//輸出一個空格 } for (int k = 1; k <= 2 * i - 1; k++)//輸出該行的* 每行星號個數為(2i-1) { printf("*"); } printf("\n");//當前行輸出完成,換行 } //到這裡,上半行完成 //下面列印下半行 //下半行的話就完全反過來。下半行的第1行前面有一個空格 有[2(h-1)-1]個星號 //下半行的第m行有m個空格,[2(h-m)-1]個星號 //下半行共有h-1行 for (int m = 1; m <= h - 1; m++)//m表示下半行的行數 { for (int n = 1; n <= m; n++)//輸出空格 { printf(" "); } for (int o = 1; o <= 2 * (h - m) - 1; o++)//輸出* { printf("*"); } printf("\n");//換行 } return 0;}
迴圈結構-列印菱形(C語言)