1. 程式人生 > 其它 >程式設計題:4-9 列印菱形圖案

程式設計題:4-9 列印菱形圖案

技術標籤:# 浙大版《C語言程式設計(第3版)》題目集c語言程式語言

題目要求

本題要求編寫程式,列印一個高度為n的、由“*”組成的正菱形圖案。

輸入格式:

輸入在一行中給出一個正的奇數n。

輸出格式:

輸出由n行星號“*”組成的菱形,如樣例所示。每個星號後跟一個空格。

輸入樣例:

7

輸出樣例:

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

程式碼實現:

int main()
{
	int n = 0;
	int above = 0;
	int i = 0;
	scanf
("%d", &n); //因為題目明確說輸入的是正奇數 //因此above代表列印上半部分 //舉例:列印七行,上半部分為四行,下半部分為三行 //列印上半部分 above = (n + 1)/2; for (i = 0; i < above; i++) { int k = 0; int j = 0; for (k = 0; k < above - 1 - i; k++) { printf(" "); } for (j = 0; j < (2 * i + 1); j++) { printf("* "
); } printf("\n"); } //列印下半部分 for (i = 0; i < above - 1; i++) { int k = 0; int j = 0; for (k = 0; k <= i; k++) { printf(" "); } for (j = 0; j < (2 * (above - 1) - 1 - 2 * i); j++) { printf("* "); } printf("\n"); } return 0
; }

總結:

列印菱形這道題目,本質上就是找規律的,分為兩個步驟:1、先列印上半部分;2、在列印下半部分。在列印上半部分和下半部分時,我們要通過巢狀迴圈的方式去實現兩個空格" “以及” “的列印,此時就需要我們根據題目所給出的輸出樣例去找規律。
例如:在上半部分列印中,需要列印4行,第一行的有三個的兩個空格,即” “的列印,即有六個空格,以及有1個的星號加一個空格的組合,即”* "的列印。依次往下類推,第二行有兩個的兩個空格,即" “的列印,即有四個空格,以及有三個的星號加一個空格的組合,即” "的列印。反覆如此,找到對應規律,就能將pta對應的這一道題目的菱形按照正確的格式打印出來。