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)計數