[PAT B1036]跟奥巴马一起编程(15分)
1036 跟奧巴馬一起編程(15)(15 分)
美國總統(tǒng)奧巴馬不僅呼吁所有人都學習編程,甚至以身作則編寫代碼,成為美國歷史上首位編寫計算機代碼的總統(tǒng)。2014年底,為慶祝“計算機科學教育周”正式啟動,奧巴馬編寫了很簡單的計算機代碼:在屏幕上畫一個正方形。現(xiàn)在你也跟他一起畫吧!
輸入格式:輸入在一行中給出正方形邊長N(3<=N<=20)和組成正方形邊的某種字符C,間隔一個空格。
輸出格式:輸出由給定字符C畫出的正方形。但是注意到行間距比列間距大,所以為了讓結果看上去更像正方形,我們輸出的行數(shù)實際上是列數(shù)的50%(四舍五入取整)。
輸入樣例:10 a
輸出樣例:
aaaaaaaaaa a a a a a a aaaaaaaaaa參考代碼
#include <cstdio>void show_n_char(int n, char c) {for(int i = 0; i < n; i++) {putchar(c);} }int main() {int N, rowC;char C;while(scanf("%d %c", &N, &C) != EOF && (3<=N && N<=20)) {rowC = (N%2)? N/2+1: N/2;show_n_char(N, C);putchar('\n');for(int i = 2; i < rowC; i++) {putchar(C);show_n_char(N-2, ' ');putchar(C);putchar('\n');}show_n_char(N,C);putchar('\n');}return 0; }思考
最近在看晴神的《算法筆記》,在書上看這題的樣例輸出,好像每兩行中間都有一個空行似的,碼完代碼去PAT上跑了一下,得到的結果居然是“多種錯誤”……當時我就淚奔了-_-||
用鼠標在網(wǎng)頁的樣例輸出上框選了一下,這才看到原來中間是沒有空行的……唉
另外一個問題就是,由于看了書里前面黑盒測試部分,于是我在這里加上了while(scanf("%d %c", &N, &C) != EOF),假想測試會輸入多組數(shù)據(jù)?但好像也沒看到哪有說。
然后,輸入N的大小范圍是 \(3\le N \le 20\),于是我也加上了大小判斷,最后變成了 while(scanf("%d %c", &N, &C) != EOF && (3<=N && N<=20)) {},不知道會不會顯得多余……
轉載于:https://www.cnblogs.com/4thirteen2one/p/9313865.html
總結
以上是生活随笔為你收集整理的[PAT B1036]跟奥巴马一起编程(15分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentoS7 and MySql 5.
- 下一篇: python实现跨excel的工作表sh