l1-039 古風排版 (20 分)
中國的古人寫文字,是從右向左豎向排版的。本題就請你編寫程式,把一段文字按古風排版。
輸入格式:
輸入在第一行給出乙個正整數n(<100),是每一列的字元數。第二行給出乙個長度不超過1000的非空字串,以回車結束。
輸出格式:
按古風格式排版給定的字串,每列n個字元(除了最後一列可能不足n個)。
輸入樣例:
4this is a test case
輸出樣例:
asa t
s t i h
e ts i
c e s
參考**
#include
#include
intmain()
if(k==len)
break;}
for(i=
0;i)printf
("\n");
}return0;
}
附圖一:
這道題解法還是比較巧妙的:
總結:1:首先使用memset(a,』 ',sizeof(a)) 函式,將二維陣列用『 』空格填充,這是因為陣列最後如果不能被完全填滿,就不用再單獨填充空格了。
2:先按正常的順序將字串存進二維陣列中,最後將二維陣列逆時針旋轉90度,輸出符合要求的答案格式。
3:m=len/n+(len%n ? 1 : 0 );這個語句使用了判斷語句,使用後使**更高效,簡潔。應該理解掌握。
4:你知道getchar()函式的用法嗎?在整數n後有個隱含的「\n」換行符,當getchar()接受「\n」時函式會被終止,之後gets(s)開始接受字串。。。。
如果缺少接受「\n」的函式,程式是無法正常的執行的。
5:我認為這道題的難度在於字串的相關知識的使用,如果不是很熟悉,就可能會被難倒。
6:我在網上查閱資料時發現:scanf("%[^\n]",s)與gets(s)具有相同的效果,也算是意外收穫,將來遇到此類問題的時候,可以使用其中的任一種方法,不過使用gets()還是比較簡便的。
在答題的過程中,有任何疑問都應該提出來,好好思考,之後你就會發現意外的收穫!加油
L1 039 古風排版
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 中國的古人寫文字,是從右向左豎向排版的。本題就請你編寫程式,把一段文字按古風排版。輸入格式 輸入在第一行給出乙個正整數n 100 是每一列的字元數。第二行給出乙個長度不超過1000的...
L1 039 古風排版
題目鏈結 時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 中國的古人寫文字,是從右向左豎向排版的。本題就請你編寫程式,把一段文字按古風排版。輸入格式 輸入在第一行給出乙個正整數n 100 是每一列的字元數。第二行給出乙個長度不超過...
L1 039 古風排版
中國的古人寫文字,是從右向左豎向排版的。本題就請你編寫程式,把一段文字按古風排版。輸入格式 輸入在第一行給出乙個正整數n 100 是每一列的字元數。第二行給出乙個長度不超過1000的非空字串,以回車結束。輸出格式 按古風格式排版給定的字串,每列n個字元 除了最後一列可能不足n個 輸入樣例 4 thi...