利用字符检验解决选拔问题

  1. 问题展示


方法一

  1. 统计字符:程序通过getchar()函数读取用户输入的每个字符,直到遇到非零字符或文件结束符(EOF)。

  2. 条件判断:对于每个读取的字符,程序检查它是否是'A'或'B',并相应地增加计数器ab

  3. 结果输出

    • 如果'A'和'B'的数量相等,输出'E'。
    • 如果'A'的数量多于'B',输出'A'。
    • 如果'B'的数量多于'A',输出'B'。

      方法2——利用缓冲输入提高效率

    • stdio.h:标准输入输出库,用于printffgets函数。
    • string.h:字符串处理库,虽然在这个代码中没有使用到任何字符串处理函数,所以实际上不需要包含这个头文件。
    • char line[1024]:一个字符数组,用于存储每次从标准输入读取的一行文本。数组大小为1024,这意味着它最多可以存储1023个字符加上一个空字符(字符串结束符)。
    • int a = 0, b = 0:两个计数器,分别用于统计字符'A'和'B'的出现次数。
    • while (fgets(line, sizeof(line), stdin)):使用fgets函数从标准输入读取一行文本。fgets会读取直到换行符或文件结束符,并将读取的文本存储在line数组中。循环继续直到读取到文件结束符(EOF)。
    • for (int i = 0; line[i]; i++):遍历line数组中的每个字符,直到遇到字符串结束符\0
    • if (line[i] == 'A') a++;:如果当前字符是'A',则增加a的计数。
    • if (line[i] == 'B') b++;:如果当前字符是'B',则增加b的计数。
    • if (a == b) printf("E\n");:如果'A'和'B'的计数相等,打印"E"。
    • else if (a > b) printf("A\n");:如果'A'的计数大于'B'的计数,打印"A"。
    • else printf("B\n");:如果'B'的计数大于或等于'A'的计数,打印"B"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值