ABC(C)

读入一个字符串,字符串中包含ABC三个字符,个数不一定相等,按ABC的顺序输出,当某个字符用完时,剩下的仍然按照ABC的顺序输出。

输入格式:
题目包含多组用例,每组用例占一行,包含ABC三个字符,当输入“E”时表示输入结束。 1<=length<=100。

输出格式:
对于每组输入,请输出一行,表示按照要求处理后的字符串。 具体可见样例。

输入样例:
在这里给出一组输入。例如:

AABBBCCC
AAAABBBBBCCC
ABBBCC
E
结尾无空行
输出样例:
在这里给出相应的输出。例如:

ABCABCBC
ABCABCABCABB
ABCBCB
结尾无空行
#include<stdio.h>
#include<string.h>
int main(){
    char x[100];
    while(scanf("%s",x)){
    	if(strcmp(x,"E")==0)
    	break;
        int a=0,b=0,c=0,i=0;
        for(i=0;x[i]!='\0';i++){
            if(x[i]=='A')
                a++;
            else if(x[i]=='B')
                b++;
            else if(x[i]=='C')
                c++;
        }
        while(a!=0||b!=0||c!=0){
            if(a!=0){
                printf("A");
                a--;
            }
            if(b!=0){
                printf("B");
                b--;
            }
            if(c!=0){
                printf("C");
                c--;
            }
        }
        printf("\n");
    }
    return 0;
}

思路:首先进行循环输入,如果输入的是E就结束循环,要注意的是字符串的比较是用strcmp()函数的,不要直接比较。然后遍历输入的字符串的每一个字符,分别用,a,b,c三个整型变量表示字符串内的A,B,C的个数,然后再循环输出a,b,c对应的A,B,C的个数,再每一次输出的时候都要进行减一,注意a,b,c的初始化要放在循环体内,以保证每一次进行循环输入的时候A,B,C的个数都是0,进行新的一轮输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值