【深大C语言OJ】最强字母(循环)

题目描述

在英文字母王国中,大写字母比小写字母强大。在大写字母之间按字母表顺序,越靠前越大,例如A比B大,B比C大,Z在大写字母中最小。同样小写字母之间的比较也按字母表顺序,也是越靠前越大。

要求在一个英文字母集合中,选择最强大的字母。

输入

输入一个英文字母字符串,只能包含大小写英文字母,不包含其它字符。

输出

输出该字符串中最大的字母,如果有多个相同的最大字母,只输出一个

样例输入

chinaGOOD

样例输出

D

思路

1.定义字符变量: char ch, max; 定义两个字符变量,ch 用于存储当前读取的字符,max 用于存储当前找到的最小字符。
2.读取第一个字符: scanf("%c", &ch); 从标准输入读取第一个字符。
3.初始化最小字符: max = ch; 将 max 初始化为第一个读取的字符。
4.循环读取字符: 使用 while 循环读取字符,直到遇到换行符’\n’
5.比较字符大小: 在循环中,判断当前读取的字符是否小于当前最小字符 max。
6.更新最小字符: 如果当前字符小于 max,则更新 max 为当前字符。
7.读取下一个字符: 使用 scanf("%c", &ch); 读取下一个字符。
8.输出结果: 循环结束后,输出找到的最小字符 printf("%c", max);。

错误示范1:漏了scanf("%c", &ch); // 读取第一个字符
            
错误示范2:while循环中漏了scanf("%c", &ch); // 读取下一个字符
此时只读取了第一个字符,因此会无限循环判断第一个字符

参考代码

#include <stdio.h>

int main()
{
  char ch, max;     // 定义字符变量 ch 和 max,用于存储输入字符和最小字符
  scanf("%c", &ch); // 读取第一个字符
  max = ch;         // 初始化 max 为第一个字符

  // 循环读取字符直到遇到换行符(Enter键)
  while (ch != '\n')
  {
    // 判断当前字符是否小于当前最小字符 max
    if (ch < max)
    {
      max = ch; // 更新最小字符
    }
    scanf("%c", &ch); // 读取下一个字符
  }

  // 输出最小字符
  printf("%c", max);

  return 0;
}

(by 归忆) 

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归忆_AC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值