PAT甲级1164 Good in C


这是我甲级写的第一题,感觉是比较麻烦的一道模拟题。输出格式卡了老久了(太弱了属于是,写这么长时间已经算失败了

思路不难想,先把题目给的26个字母存下来,然后处理字符串再输出就可以了,细节扣的比较多

下附20分代码:

#include
using namespace std;

char arr[100][7][5];

void printc(string s){
    for(int i=0;i<7;i++){
        for(int x=0;x> arr[i][j][k];


   cin.ignore();
   string todo;
   getline(cin,todo);

   int i,j;
   bool isF = true;    //看是不是第一个
   for(i=0;i 90 ){  i++;continue;}

       for( j=i;j 90 ){     //不是字母了
               if(!isF){      //这里我们可以先输出换行再打印(除了第一个
                   cout << endl;
               }
               isF = false;
               printc(todo.substr(i,j-i));
               break;
           }else if(j == todo.size()-1 && int(todo[j]) >= 65 && int(todo[j]) <= 90 ){
               if(!isF){
                   cout << endl;
               }
               isF = false;
               printc(todo.substr(i,j-i+1));
               break;
           }
       }
       i = j+1;
   }

    return 0;
}