L1 039 古風排版(C語言版)

2021-08-29 04:11:56 字數 1164 閱讀 4801

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...