题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1200
代码:
1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #include <algorithm> 5 #include <iostream> 6 #include <ctype.h> 7 #include <iomanip> 8 #include <queue> 9 #include <map> 10 #include <stdlib.h> 11 using namespace std; 12 13 char a[25][250],str[300]; 14 15 int main() 16 { 17 int lie,hang; 18 int len,i,j,k; 19 while(scanf("%d",&lie),lie){ 20 getchar(); 21 hang=k=0; 22 memset(a,‘\0‘,sizeof(a));//将字符数组初始化 23 gets(str); 24 len=strlen(str); 25 hang=len/lie; 26 for(i=0;i<hang && k<len;i++){//将一开始输入的字符按照先从左到右,再从右到左填入二维数组中 27 for(j=0;j<lie;j++){ 28 if(i%2)//判断是奇数行 29 a[i][lie-j-1]=str[k++]; 30 else 31 a[i][j]=str[k++]; 32 } 33 } 34 for(i=0;i<lie;i++)//按顺序输出就可以了,注意是从上到下输出 35 for(j=0;j<hang;j++) 36 printf("%c",a[j][i]); 37 printf("\n"); 38 } 39 }
时间: 2024-10-31 13:12:57