dc66584409 2016-06-04 07:02 采纳率: 0%
浏览 1098

关于c语言的问题,想用c语言解答

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“GPLTGPLT....”这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:pcTclnGloRgLrtLhgljkLhGFauPewSKgt

输出样例:GPLTGPLTGLTGLGLL

  • 写回答

4条回答 默认 最新

  • 「已注销」 2016-06-04 08:01
    关注

    #include
    using namespace std;
    int main()
    {
    char s[10001], PGLT[4] = { 'P', 'G', 'L', 'T' };
    int i, j, c[4] = { 0, 0, 0, 0}; //c[4]分别存储字符出现次数
    cin >> s;
    for (i = 0; s[i] != '\0'; i++) //统计每个字符的出现次数
    {
    switch (s[i])
    {
    case 'P': c[0]++;
    break;
    case 'G': c[1]++;
    break;
    case 'L': c[2]++;
    break;
    case 'T': c[3]++;
    break;
    }
    }
    while (c[0] || c[1] || c[2] || c[3] )
    {
    for (i = 0; i < 4; i++)//将P、A、G、L、T字符先后输出
    {
    if (c[i]!=0)//当这个字符没用完时,继续输出
    {
    printf("%c", PGLT[i]);
    c[i]--;//个数-1
    }
    }
    }
    //system("pause");
    return 0;
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘