1. 程式人生 > >第五章 循環結構課後反思

第五章 循環結構課後反思

一行 size 部分 協調 換行 src 圖片 行數 inf

首先先看圖案的行列,圖案為9行11列。然後圖案可分為三個部分。
1、
技術分享圖片

2、
技術分享圖片

3、
技術分享圖片

第一部分的三角形較簡單,不過需要註意輸出的空格數量(為使圖案與書本一致,要通過增加空格使星號間距增大)。在增加星號間距的同時,還要註意換行時候的星號前面空格的數量(需要與後面星號間距協調一致)
附上一張沒調整星號前面間距的圖
技術分享圖片

(可以看到每一行前方的空格數量沒有與星號間距協調好的,導致圖案變形)
第二部分較簡單
第三部分可以看成是第一部分的星號與空格交換後的圖形,不過在第一部分中的後半部分空缺是通過換行實現的,所以在第三部分中需要增加右半部分的星號。
(PS:在這個圖案中可以不需要很多變量,變量可以重復使用,只需要在for中賦值即可)

#include<stdio.h>
main()
{
    int i,j,k;
    for (i=1;i<=5;i++)   //,此處第一個for為圖案的上半部分(5行的三角形)i表示行數,j,k表示列中的星號和空格
        {   
        for(j=1;j<=(5-i);j++)    
            {
                printf("     "); // 這裏需註意與下方星號的間距協調至一致 
            }
        for(k=1;k<=(2*i-1);k++)
            {
                printf("  *  "); //這裏為了達到書本裏的星號間距所以在星號兩邊加入了空格 
            }   
        printf("\n");   
        }
        
    for (i=1;i<=2;i++)  //此處第二個for表示圖案中間的兩行星號 
        {
            for(j=1;j<=9;j++)
            {
                printf("  *  ");
            }
            printf("\n");
        }
        
    for (i=1;i<=5;i++)   //此處第三個for為圖案下半部分的三角形 
        {   
        for(j=1; j<=(5-i);j++)  //這是圖案下方左邊的三角形 
            {
                printf("  *  "); 
            }
        for(k=1;k<=(2*i-1);k++)
            {
                printf("     ");
            }   
        for(j=1;j<=(5-i);j++)  //這是圖案下方右邊的三角形 
            {
                printf("  *  ");
            }
        
        printf("\n");   
        }
 } 

第五章 循環結構課後反思