poj 2039 To and Fro【字符數組操作】
這道題同樣沒有太多好說的,總之要細心就好了!
AC的代碼:
#include <stdio.h>
#include <string.h>
//先輸入到一個字符數組之後在進行處理
char letters[22][202];//第一行代表列
char myInput[202];
void testPrint(int n)
{
//測試輸出
int i,j;
for(j=0;j<(int)strlen(myInput)/n;j++)
{
for(i=0;i<n;i++)
{
printf("%c ",letters[i][j]);
}
printf("\n");
}
}
void process(int N)
{
int row; //行數
int i=0;
int j;
while(i<(int)strlen(myInput))
{
//先判斷行數奇偶,確定輸入方向
row=i/N;
if (row%2==0)
{
//正向輸入
for(j=0;j<N;j++)
{
letters[j][row]=myInput[i];
i++;
}
}
else
{
//反向輸入
for(j=N-1;j>=0;j--)
{
letters[j][row]=myInput[i];
i++;
}
}
}
//轉換完畢,測試輸出
//testPrint(N); //ok
}
void Print(int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<(int)strlen(myInput)/n;j++)
{
printf("%c",letters[i][j]);
}
}
printf("\n");
}
int main()
{
int N;//代表輸入的字符數組排成多少列
while(~scanf("%d",&N) && N!=0)
{
scanf("%s",myInput);
//將輸入的數組變成二維字符數組
process(N);
//正式輸出
Print(N);
}
return 0;
}
最後更新:2017-04-03 05:39:37