1. 程式人生 > >PTA:中M2018秋C入門和進階練習---7-5 輸出倒三角圖案(C實現)

PTA:中M2018秋C入門和進階練習---7-5 輸出倒三角圖案(C實現)

題目連結

7-5 輸出倒三角圖案 (5 分)

本題要求編寫程式,輸出指定的由“*”組成的倒三角圖案。

輸入格式:

本題目沒有輸入。

輸出格式:

按照下列格式輸出由“*”組成的倒三角圖案。

* * * *
 * * *
  * *
   *

 解析:題目很簡單,直接用prinf列印即可。但是人總要有點夢想,嘗試用迴圈來解決。奈何搜到的解決方案都是通過printf直接列印的。

上程式碼:

#include<stdio.h>

int main(void){  
    for (int i = 0; i < 4; i++) {
        for(int a = i; a> 0; a--){
            printf(" ");
        }
        for(int j =i; j<4; j++) {
            if(j == 3){
               printf("*"); 
               break;
            }
            printf("* ");
        }
        
    printf("\n");
    }
}

分析一下圖:總共4行,第一行4個*,3個空格,下面每一行比上面一行少個*,空格數卻是不變。

得出結論:通過外層迴圈控制行數,記憶體迴圈控制每行的列印內容。到那時問題來了,該如何列印空格呢?

         通過觀察可以得知,美韓開頭的空格數目為當前行數-1,於是在外層迴圈裡再加一個迴圈來列印空格,但是一定新定義一個變數來接收i的值,直接用i來處理這個尋歡會進入到死迴圈。至於最後一個*要求沒有空格,直接通過判斷這個*是不是最後一個就行,如果不是,就列印* ,反之,就列印*。