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