题目:

 思路:

  用四个整形变量统计四个字母出现的个数,按GPLT顺序输出,每输出一个字母,这个字母的个数就减一,为0了就不输出。一开始我把第二个循环里面的if都写成else if了,结果输出GGGGGPPLLLLLLTTT。。。因为if和else if 只会执行其中之一。。。

上代码:

#include <iostream>
using namespace std;
int main()
{
   string s;
   int g=0,p=0,l=0,t=0;
   cin>>s;
   for(int i=0;i<s.length();i++)
   {
          if(s[i]=='g'||s[i]=='G')
          {
                g++;
        }else if(s[i]=='p'||s[i]=='P'){
            p++;
        }else if(s[i]=='l'||s[i]=='L'){
            l++;
        }else if(s[i]=='t'||s[i]=='T'){
            t++;
        }
   }
   while(g>0||p>0||l>0||t>0){
           if(g>0){
               cout<<'G';
               g--;
           }if(p>0){
               cout<<'P';
               p--;
           }if(l>0){
               cout<<'L';
               l--;
           }if(t>0){
               cout<<'T';
               t--;
           }            
   }
   return 0;
}

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!