程式設計題:4-9 列印菱形圖案
阿新 • • 發佈:2021-02-03
技術標籤:# 浙大版《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對應的這一道題目的菱形按照正確的格式打印出來。