牛客网多组输入问题怎么办?EOF使用方法

2023-11-10

在这里插入图片描述

需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/–>阿里云<–/–>华为云<–/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。

1️⃣什么是EOF

EOF,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。 EOF 的值通常为 -1,在文本文件中,数据都是以字符ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

2️⃣while(getchar()!=EOF)解决多组字符输入

释义:getchar()一直接收字符直到遇到EOF(牛客网刷题中可以认为是多组输入结束)。

BC53 判断是元音还是辅音

image.png

#include <stdio.h>
int main()
{
    char a;
    while((a=getchar())!=EOF)
    {
        getchar();
        if(a=='A'||a=='a'||a=='E'||a=='e'||a=='I'||a=='i'||a=='O'||a=='o'||a=='U'||a=='u')
        {
            printf("Vowel\n");
        }
        else
            printf("Consonant\n");
    }
    return 0;
}

1、一个getchar()只能接收一个字符。
2、牛客网在输入一个字符时,还有一个空格或回车会一起存在于缓冲区,故此时的缓冲区存在字符和’\n’
3、while((a=getchar())!=EOF)中的getchar()接收输入的字符后,缓冲区还存在’\n’,这个’\n’需要使用另一个getchar()吸收掉。故在while循环内部使用了一个getchar()来吸收’\n’;

3️⃣while(scanf(“%d”,&a)!=EOF)解决所有格式多组输入

while(getchar()!=EOF)只能接收字符型的多组输入,若输入为其他类型,则不能使用while(getchar()!=EOF)
但while(scanf(“%d”,&a)!=EOF)可以解决问题。

BC75 小乐乐是否被叫家长

image.png

错误示例

image.png
由于题目中多组输入为int类型,故不能使用while(getchar()!=EOF)

正确示范

#include <stdio.h>
int main()
{
    int arr[3]={0};
    int i=0;
    int a=0;
    while(scanf("%d",&a)!=EOF)
    {
        arr[i++]=a;//输入为int类型,循环内无需使用getchar
    }
    int ave=(arr[0]+arr[1]+arr[2])/3;
    if(ave>=60)
        printf("NO");
    else
        printf("YES");
    return 0;
 }

1、scanf可以接收多种类型的输入值,针对多组输入,建议使用while(scanf(“%d”,&a)!=EOF)
2、当输入不是字符类型时,缓冲区内的’\n’可以无需使用getchar()吸收,若输入类型为char,循环内必须需使用getchar()来吸收’\n’。

4️⃣多组输入也可以使用循环来解决

题目同上:

#include <stdio.h>
int main()
{
    int arr[3]={0};
    int i=0;
    for(i=0;i<3;i++)
    {
        scanf("%d",&arr[i]);
    }
    int ave=(arr[0]+arr[1]+arr[2])/3;
    if(ave>=60)
        printf("NO");
    else
        printf("YES");
    return 0;
 }

相关推荐:c中的数据类型+常量+转义字符
以上文案为某位不愿意透露姓名的计算机菜鸟所书,可能存在错误,请您指正!
点点赞!点点赞!点点赞!点点赞!点点赞!点点赞!点点赞!点点赞!点赞!
点点关注!点点关注!点点关注!点点关注!点点关注!点点关注!点点关注!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

牛客网多组输入问题怎么办?EOF使用方法 的相关文章

随机推荐

  • idea中Vue的v-on报错

    虽说并不影响代码的执行结果 但是作为强迫症的你们肯定很不爽 解决方法 直接添加 只针对v on 其他还需添加 xmlns v on http www w3 org 1999 xhtml Settings gt Inspections gt
  • React 环境搭建以及创建项目工程(二)

    创建工程 首先创建一个工程 npx create react app weibo cd移动到当前创建的文件下 cd weibo 安装 React 路由 npm install react router react router dom 5
  • 微信小程序实现保存图片到本地

    wxml代码
  • PySyft中model.get()方法解释

    最近在看联邦学习相关内容 上手了PySyft框架 该框架相当于是在Pytorch深度学习框架上扩展的第三方API 对我经常使用Pytorch深度学习框架的人来说再合适不过 然后在网上找各种帖子学习了一点基础的东西 其中有一篇比较经典的帖子是
  • 算法(1)---八大排序算法

    一 选择排序 定义 从待排序的数据中 按指定的规则选出某一个元素 再依规定交换位置后达到排序的目的 核心思想 从全部序列中选取最小的 与第0个元素交换 然后从第1个元素往后找出最小的 与第一个元素交换 再从第2个元素往后选取最小的 与第二个
  • oracle 查询表空间所有表、及表所有的表空间

    查询表空间所有表 select table name from all tables where TABLESPACE NAME 表空间 表空间名字一定要大写 查询表所在的表空间 select from user tables where
  • Iframe postMessage 日志

    postMessage catcher 之前工作需要接入不同 iframe 需要使用 postMessage 来进行通信 本地开发还好可以方便打印相互通信的数据 就是线上有些麻烦 不好直接观察发送和接收的数据是怎么样的 所以写了个 chro
  • 设置Linux服务器登录密码过期时长

    设置Linux服务器登录密码过期时长 登录服务器时 提示登录密码过期 必须修改密码重新登录 You are required to change your password immediately password aged You mus
  • Python-Dataframe使用已知数据填补空值

    作为大气遥感的一员 研究的对象主要是排放栅格图像 因此本文主要针对栅格图像来对其NaN空值进行有选择的填补 在处理数据时遇到一个问题 当一个栅格图像只有很小一部分存在有用值 可能10000多个栅格区域只有300个有有效值 此背景下给一个假设
  • 动手篇

    简介 本文讲述如何在麒麟v10 SP2安装达梦8版本数据库 安装操作系统 麒麟v10 SP2 root 192 bin uname a Linux 192 168 220 110 4 19 90 24 4 v2101 ky10 x86 64
  • 消息不能及时回复,见谅

    由于公司网络原因 无法登陆具有上传功能的平台比如百度云 CSDN等 所以消息多半无法及时回复 见谅 博客及记录包括转载 摘录内容本人暂时在github上 内容如果涉及你的授权请及时与我联系 附github https github com
  • plsql Developer 设置 优化

    配置文件 PL SQL Developer 安装目录中的 params ini 文件 配置文件中的参数也是命令行参数 同时设置的话 命令行参数优先 这几个是可能会用的 nologon userid user password db inst
  • 版本号命名规范

    最近写文档被完虐 啊摔 老师不满意 还不好意思直接批评我 搞得自己很羞愧 所以我决定了要加强一下写作技能 首先从文件管理方面进行改进 首先就是版本号的管理规范 转自百度文库http wenku baidu com view 0f7d6b24
  • 小白学习kali linux day5(XSS漏洞学习)

    BEEF工具介绍 BEEF工具针对浏览器进行渗透测试 可以进行XSS漏洞攻击和利用 首先安装beef如下 首先安装beef xss工具 之后启动beef工具 绿色框框里为beef密码 可以为123 下图框框内的表示xss漏洞的钩子 ip应该
  • 126-----JS基础-----Location

    一 代码 很简单 看一下即可 注意 01 BOM html的代码在124节的Navigator中 只是一个简单的测试画面而已 自己随便弄一个测试也可以
  • 使用curl命令断点续传下载

    目录 使用curl命令断点续传下载 使用curl命令断点续传下载 curl exe C O
  • attachEvent报错原因

    document attachEvent is not a function出错的原因 报错原因有 1 利用attachEvent 直接在谷歌浏览器打开 我就是犯这种低级错误的 重要事情说三遍 attachEvent是IE浏览器独有的 at
  • IDEA2022.3设置自动生成类的serialVersionUID

    打开IDEA 点击File settings Editor Inspections 搜索seria 把这两个选上 然后点击apply ok 使用 选中你要生成的类 Alt Enter键自动提示 这个时候就有创建提示了
  • 网络TCP建立连接为什么需要三次握手而结束要四次

    举个打电话的例子 A 你好我是A 你听得到我在说话吗 B 听到了 我是B 你听到我在说话吗 A 嗯 听到了 建立连接 开始聊天 TCP连接的释放 四次挥手 数据传输完毕后 双方都可释放连接 最开始的时候 客户端和服务器都是处于ESTABLI
  • 牛客网多组输入问题怎么办?EOF使用方法

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 1 什么是EOF 2 while getchar EOF