PATB 1036 跟奧巴馬一起編程

                     1036 跟奧巴馬一起編程 (15 分)

美國總統奧巴馬不僅呼籲所有人都學習編程,甚至以身作則編寫代碼,成爲美國曆史上首位編寫計算機代碼的總統。2014 年底,爲慶祝“計算機科學教育周”正式啓動,奧巴馬編寫了很簡單的計算機代碼:在屏幕上畫一個正方形。現在你也跟他一起畫吧!

輸入格式:

輸入在一行中給出正方形邊長 N(3≤N≤20)和組成正方形邊的某種字符 C,間隔一個空格。

輸出格式:

輸出由給定字符 C 畫出的正方形。但是注意到行間距比列間距大,所以爲了讓結果看上去更像正方形,我們輸出的行數實際上是列數的 50%(四捨五入取整)。

輸入樣例:

10 a

輸出樣例:

aaaaaaaaaa
a        a
a        a
a        a
aaaaaaaaaa

代碼C語言實現:

#include<stdio.h>
int main()
{
    int row,col;      //col爲列數,row爲行數  標註1
    char input_ch;
    scanf("%d %c",&col,&input_ch);
    if(col%2==0)
        row=col/2;
    else
        row=col/2+1;

    for(int j=0;j<col;j++)
    {
        printf("%c",input_ch);
    }
    printf("\n");

    for(int i=2;i<row;i++)
    {
        printf("%c",input_ch);
        for(int j=2;j<col;j++)    //非col-1,因爲在最後一列輸出
        {
            printf(" ");
        }
        printf("%c\n",input_ch);

    }

    for(int j=0;j<col;j++)
    {
        printf("%c",input_ch);
    }

}

標註1:直接用col列數來接收輸入的正方形邊長,因爲觀察圖形,行邊距比列邊距大,爲了看起來像正方形,當邊長爲奇數時,行數爲列數的1/2+1,因此不需要再用一個變量來接收邊長的輸入

分爲三塊(3個for函數,第二個for函數有些難):第一行,第2~(row-1)行,第row行

注意代碼中的列:0~(col-1)計數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章