C语言--多组输入类题目

简介: C语言--多组输入类题目

多组输入如何实现?

看下面一道题:(题目来源:牛客网

这道题我们在牛客网可以用下面一段代码实现:

但是注意,这样写是不对的,题目要求的是多组输入,但上面代码只能输入一组数据,能够测试通过是因为只测试了一组数据,要实现多组输入应该用下面一段代码

#include<stdio.h>
int main()
{
    int a = 0;
    while (scanf("%d", &a)!=EOF)
    {
        if (a > 140)
            printf("Genius\n");
    }
    return 0;
}

将输入写入while循环就能实现多组输入。

大家可能对代码中的EOF有些疑惑,下面我们来解读一下:

scanf函数是用来读取数据的。

如果正常读取数据,函数返回的就是读取数据的个数。例如scanf("%d", &a);返回的就是1,

scanf("%d %d", &a,&b);返回的就是2。

如果读取遇到错误,或者读取遇到文件结束,函数返回的就是EOF。

代码中(scanf("%d", &a) ! = EOF)是循环的判断条件,意思是当输入正常读取时进入循环。也可以将它改为(scanf("%d", &a) == 1),同样可以作为判断条件表示当输入正常读取时进入循环。

好了,以上就是实现多组输入的方法,下面我们再看一道题目练习一下:

代码实现:

#include <stdio.h>
int main()
{
    int a = 0;
    while(scanf("%d",&a) == 1)
    {
        if(a%2==1)
          printf("Odd\n");
        else
          printf("Even\n");
    }
     return 0;
}

如何停止输入?

有同学可能有疑问了,我输入完所有测试的值后怎么停止输入呢?

很简单,只需要输入Ctrl+z就会停止输入,注意VS编译器可能要输入好几个Ctrl+z才会停止输入,这只是VS编译器的小bug,大家不必理会。

目录
相关文章
|
1月前
|
存储 C语言 C++
C语言------------指针笔试题目深度剖析
C语言------------指针笔试题目深度剖析
19 1
|
1月前
|
C语言
C语言对象和类
C语言对象和类
16 0
|
3月前
|
C语言
C语言写元素类
C语言写元素类
22 0
|
3月前
|
C语言
C语言写整数类(Integer)
C语言写整数类(Integer)
24 0
|
6月前
|
C语言 Windows
【初阶C语言】关于scanf函数的超详细介绍和多组输入
【初阶C语言】关于scanf函数的超详细介绍和多组输入 我们学习一个函数,要围绕三个点:1.函数是什么 2.函数的用法 3.注意的细节
96 0
|
4月前
|
存储
1.C语言题目---指针类(基础)
1.C语言题目---指针类(基础)
34 1
|
1月前
|
Java C语言 C++
C语言对象和类
C语言对象和类
|
1月前
|
存储 算法 C语言
C语言初学者超详细习题库1(含题目以及代码讲解)
C语言初学者超详细习题库1(含题目以及代码讲解)
39 1
|
2月前
|
算法 搜索推荐 程序员
C语言第二十三练——剩余类
C语言第二十三练——剩余类
24 0
|
3月前
|
存储 C语言 C++
C语言基础专题 - 存储类(编辑中)
C语言基础专题 - 存储类(编辑中)
22 0