#include <stdio.h>
#include <string.h>
int main()
{
int n;
char s[10010] = {0},a[111][111] = {0};
scanf("%d\n",&n);
gets(s);
int shu=0,heng=0,i=0;
while(i<strlen(s)){
a[heng++][shu] = s[i++];
if(heng==n && i<=strlen(s)-1){ //防止恰好整行时又创建新的竖行
shu++;
heng=0;
}
}
for(int j=0;j<n;j++){
for(int k=shu;k>=0;k--){
if(a[j][k]=='\0') //对'\0'的处理
printf(" ");
else
printf("%c",a[j][k]);
}
printf("\n");
}
return 0;
}
这个题并不难,唯一忽视的问题就是对'\0'的处理,当编译器读取到'\0'时,并不会输出,所有要进行特殊处理。