轻大oj1686:只是简单的ACM啦

       众所周知,郑州轻工业大学的oj平台是比较开放的,里面有很多优质的题源和算法。轻大的新生也十分给力,周赛基本都能在一个小时内全部OK。对于大部分新生,oj前200已经可以游刃有余了。


     先简单讲一下这个oj1686吧,这个题目其实只是循环的一个小分支,而且难度很低,轻大新生随随便便就ak了。但是对于我们这些十分菜的新生吧,我还是愿意分享一下我的解析。


                                        先看题目

10108263b73e4551a6d6f74c1a4946f3.png

2e1222fc9e2a4962b26fb117ad4bc7ae.png88a75b37d9504522ab04af2021c07b8f.png


解析一:好像可以用getchar在while里面循环再判断什么条件退出,虽然按一般来说,字符串末尾是‘\0’,文本的末尾是EOF,但是这里并没有提示,在实际提交的时候会出现时间超限表示没有成功判断退出。

解析二:可以是字符数组存入这个字符串,而且在存入的时候,字符数组会贴心的加入‘\0’,因此可以在用条件退出循环的时候可以用这个判断,但是我个人还是比较推荐用头文件的<string.h>中的strlen函数(正所谓库函数不用白不用,又好用又方便还省事还通俗易懂)

tips:多学习库函数可以省去很多不必要的步骤和提高代码能力。


#include<stdio.h>
#include<string.h>
int main() {
    char sum[50];//定义字符数组
    int a = 0, c = 0, m = 0, n = 0;//只是很简单易懂的定义
    scanf_s("%s", sum,50);//这里我使用的是VS,大家可以自行修改一下(其实是自己太弱了,根本用不了其他编译器)
    int len = strlen(sum);//长度
    while (len--) {//简单的循环
        if (sum[n] == 'a') {
            a++;//如果字符为a的话,变量a加1,下同
        }
        if (sum[n] == 'c') {
            c++;
        }
        if (sum[n] == 'm') {
            m++;
        }
        n++;//移动下标
    }
    int min = a;//字符数目最小的那个字符就是acm单词的个数
    if (c < min) {
        min = c;
    }
    if (m < min) {
        min = m;
    }
    printf("%d",min);
    return 0;
}

编译器为VS,抄写的时候请自行修改,否则编译错误!!!!!


为了防止特殊法则,目前已经进行了新一次的自定义博客尝试(HTML+CSS),里面会有更多的技巧的解析,以后也会将博客的代码放入GitHub中。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引用\[2\]提供了关于如何在杭电OJ上使用C语言进行题目刷题的步骤。首先,你需要打开百度并搜索“杭电OJ”,然后进入官网进行注册。在注册界面上填写完整的信息后点击提交。接下来,你可以使用你的用户名和密码登录账号。进入刷题界面后,你可以选择C语言作为答题语言,并将代码粘贴到答题界面中。然后你可以查看答案是否正确。如果你不小心离开了界面,你可以通过点击红线圈出部分或者点击右上方的用户名进入用户界面来查看你的题目是否正确。\[2\] 引用\[1\]提供了一段C语言代码,但是没有明确指出这段代码的作用和题目的具体要求。如果你能提供更多关于杭电OJ1098题目的信息,我将能够为你提供更准确的帮助。 #### 引用[.reference_title] - *1* [杭电OJ 2007 C语言版 已通过](https://blog.csdn.net/m0_56912916/article/details/119041984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [杭电OJ刷题指南(ACM)](https://blog.csdn.net/qq_38769551/article/details/101510000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

失意哦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值