L1-039. 古風排版


L1-039. 古風排版

中國的古人寫文字,是從右向左豎向排版的。本題就請你編寫程序,把一段文字按古風排版。

輸入格式:

輸入在第一行給出一個正整數N(<100),是每一列的字符數。第二行給出一個長度不超過1000的非空字符串,以回車結束。

輸出格式:

按古風格式排版給定的字符串,每列N個字符(除了最后一列可能不足N個)

輸入樣例:
4
This is a test case
輸出樣例:
asa T
st ih
e tsi
 ce s

 

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	int N,len=0,i,j,x;
	char s[1100];
	memset(s,0,1100);
	scanf("%d",&N);
	getchar();
	while((s[len]=getchar())!='\n'){len++;}
		if(len%N!=0){for(i=0,x=len;i<N-len%N;i++)s[x++]=' ';}
		else x=len;
		for(i=0;i<N;i++){
			for(j=x/N-1;j>=0;j--){
				printf("%c",s[j*N+i]);
			}
		printf("\n");
	}
}

 

  

數組長度害人不淺。

在最后一列補進去的空格足夠的空格,然后按照行和列的一維數組下標特征值輸出就好啦。

需要注意的是,如果采取補進去空格的這種方法,需要把數組開到足夠大,(剛開始開了1001,一直提示段錯誤),假設1000個字符串,N=99,則需要一個容納1089個字符的數組。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM