2020年6月25日 星期四

APCS - 2016-03-05 觀念題-01


1. 右側程式正確的輸出應該如下:
*
***
*****
*******
*********

在不修改右側程式之第 4 行及第 7 行程
式碼的前提下,最少需修改幾行程式碼
以得到正確輸出?
(A) 1
(B) 2
(C) 3
(D) 4
01  int k = 4;
02  int m = 1;
03  for (int i=1; i<=5; i=i+1) {
04  for (int j=1; j<=k; j=j+1) {
05  printf (" ");
06  }
07  for (int j=1; j<=m; j=j+1) {
08  printf ("*");
09  }
10  printf ("\n");
11  k = k – 1;
12  m = m + 1;
13  }


【參考解析】


*
**
***
****
*****
  這是將原文程式輸入Code Blocks中會得到的圖形
  可以發現每行間要增加的 * 號短少了
  而決定 * 數量的程式碼片段在第12行,故修改如下。
 int k = 4;
    int m = 1;
    for (int i=1; i<=5; i=i+1)
        {
            for (int j=1; j<=k; j=j+1) //原文第4行,不可更動
                {  
                    printf (" ");
                }
            for (int j=1; j<=m; j=j+1)  //原文7行,不可更動
                {  
                     printf ("*");
                }
            printf ("\n");
            k = k - 1;
            m = m + 2;  
        }

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。