1. 程式人生 > >1036 跟奧巴馬一起程式設計 ——c實現

1036 跟奧巴馬一起程式設計 ——c實現

1036 跟奧巴馬一起程式設計 (15 分)

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

輸入格式:

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

輸出格式:

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

輸入樣例:

10 a

輸出樣例:

aaaaaaaaaa
a        a
a        a
a        a
aaaaaaaaaa

思路:這道題很簡單。可以將列印的圖形分成3部分:第一行/中間部分/最後一行。小難點是四捨五入的計算方法,實際上就是一個條件表示式就可以判斷,判斷的核心是根據小數部分是否大於等於0.5,或者取餘的整數是否大於等於1。整數的四捨五入——c實現

程式碼:

//PAT1036V1
#include <stdio.h>

int main(){
	int n;
	int i,j;
	char a;
	scanf("%d %c",&n,&a);
	int k=(n-2*(n/2))>=1?n/2+1:n/2;	//四捨五入
	for(i=0;i<n;i++){	//第一行 
		printf("%c",a);
	} 
	for(i=0;i<k-2;i++){	//第二行 
		printf("\n%c",a);
		for(j=0;j<n-2;j++)
			printf(" ");
		printf("%c",a);
	}
	printf("\n");
	for(i=0;i<n;i++){	//第三行 
		printf("%c",a);
	} 
	return 0;	
}