getchar的用法

定位查找

https://ac.nowcoder.com/acm/problem/22219

1.getchar可冲缓冲区读走一个字符,相当于清楚缓冲区;
2.前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完a[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误;
题解如下:
#include <stdio.h>
int main()
{
    int n,m,i,a[20];
    while(~scanf("%d",&n))
    {
        for(i=0; i<n; i++)
        {
            scanf("%d",&a[i]);
            getchar();
        }
        scanf("%d",&m);
        for(i=0; i<n; i++)
            if(m == a[i])
                break;
        if(i<n)
            printf("%d\n",i);
        else
            printf("No\n");
    }
}
全部评论
相当于scanf("%d",&n)!=EOF
点赞 回复 分享
发布于 2021-09-08 20:16
~scanf("%d",&n) 这边的省略号的代表什么意思
点赞 回复 分享
发布于 2021-07-27 10:25

相关推荐

不愿透露姓名的神秘牛友
07-11 11:29
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
仁者伍敌:实习生要工作经验,工作要实习经验
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务