c语言 洛谷P1765手机题解

解题思路

1.定义字符数组,存储整行输入(句子中带有空格,不能用scanf("%s"))

2.遍历字符串每一个字符

3.判断当前字符:

如果是空格:按键次数+1

如果是小写字母:根据字母所在九宫格位置,计算是第几个字符,累加按键次数

4.遍历结束,输出总次数

代码理解

c 复制代码
#include <stdio.h>
#include <string.h>
int main()
{
    char s[205];//字符数组,存放输入的一整行文字,最多200字符
    gets(s);//读取一整行,包括空格,读到回车结束
    int sum=0;//总按键次数,初始为0
    int i;
    for(i=0;s[i]!='\0';i++)
    {
      char ch=s[i];//把当前这个数字拿出来存到ch
      if(ch==' ')
      {
        sum+=1;
      }
      else if(ch>='a'&&ch<='c')sum+=ch-'a'+1;
      else if(ch>='d'&&ch<='f')sum+=ch-'d'+1;
      else if(ch>='g'&&ch<='i')sum+=ch-'g'+1;
      else if(ch>='j'&&ch<='l')sum+=ch-'j'+1;
      else if(ch>='m'&&ch<='o')sum+=ch-'m'+1;
      else if(ch>='p'&&ch<='s')sum+=ch-'p'+1;
      else if(ch>='t'&&ch<='v')sum+=ch-'v'+1;
      else if(ch>='w'&&ch<='z')sum+=ch-'w'+1;
     }
     printf("%d",sum);
     return 0;
 }

定义字符数组,存储整行输入
scanf("%s")碰到空格就停止读取
本题带有空格,不能用scanf("%s")改用gets或者fgets,可以读取完整一行,空格也能正常读入。

相关推荐
2601_966949651 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
晨曦中的暮雨3 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪4 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风4 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
2601_962885726 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
Wang's Blog6 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
下一站春风里7 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
天外飞雨道沧桑8 小时前
我在浏览器里练了一个 792 参数的大模型,它学会了补全 JavaScript
开发语言·javascript·ai·ecmascript·ai编程
hhhjhl8 小时前
Yup 跨端三方库仓颉适配全流程
java·开发语言
运维行者_8 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php