Saturday, October 3, 2020

c 考古題

1.  如果想描繪下圖之鑽石形狀

     *     
    ***    
   *****   
  *******  
 ********* 
***********
 ********* 
  *******  
   *****   
    ***    
     *     

請參考以下程式碼

#include <stdio.h>

int main(int argc, const char * argv[])
{
    for(int i = -5; i <= 5; i++)
    {
        for(int j = -5; j <= 5; j++)
        {
            if(i <= j + 5 && i <= -j + 5 && i >= -j - 5 && i >= j - 5)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
}

2. 如果想描繪下圖之三角型, 星號由一到十遞增

         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

請參考以下程式碼

1. 第一個迴圈代表執行十次

2. 第二個內迴圈也執行十次, 但裡頭多加一個判斷式

    因這三角形星號是由右邊往左列印, 因此下了 j <= 10 - i

    因此i == 1時印出九個空格, 條件不滿足時才列印出星號

3. 跳出內迴圈後印出換行符號    

#include <stdio.h>

int main(int argc, const char * argv[])
{
    for(int i = 1; i <= 10; i++)
    {
        for(int j = 1; j <= 10; j++)
        {
            if(j <= 10 - i)
                printf(" ");
            else
                printf("*");
        }
        printf("\n");
    }
}

3. 若想描繪下圖之三角型, 由上而下為一顆, 兩顆星號, 以此類推到十顆

*
**
***
****
*****
******
*******
********
*********
**********

請參考下列程式碼:

1. 第一個for迴圈代表會執行十次

2. 第二個for迴圈代表會印出星號, 印出的次數會以變數i為準

3. 若j <= i條件不成立, 則內迴圈執行結束並印出換行符號

#include <stdio.h>

int main(int argc, const char * argv[])
{
    for(int i = 1; i <= 10; i++)
    {
        for(int j = 1; j <= i; j++)
        {
            printf("*");
        }
        printf("\n");
    }
}

 

4. 

No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能