【C语言】多组输入

简介: 该文通过做题举例的方式,让我们可以更好的理解多组输入,代码和注释以及运行图可以让我们更加清晰的理解多组输入。

C系列文章目录


目录

C系列文章目录

一、什么是多组输入?

二、如何使用多组输入

2.1,试题举例讲解

2.2,错误解法

2.3,我们实现多组输入的思路

2.4,第一种正确的解法

2.5,第二种正确的解法

2.6,多组输入的第二种输入方法

2.7,如何停止多组输入

总结


前言

我们学习C语言,从小白成长为大佬的的探险历程,我们在这章将初步探索多组输入这个知识关卡


一、什么是多组输入?

在C语言中,"多组输入"通常指的是从用户处接收多个输入值的情况。这些输入值可以是不同的数据类型,例如整数、浮点数、字符等。

二、如何使用多组输入

2.1,试题举例讲解

image.gif编辑

我们通过该题进行讲解多组输入:

2.2,错误解法

该解法只能通过侥幸的通过牛客网,但不是真正的符合该题的多组输入的要求

//如果这样写,通过了很侥幸,因为题目要求多组输入
//只能跑一组数据,这个代码只接收一组数据,判断完就就结束了
int main()
{
  //输入
  int iq = 0;
  scanf("%d", &iq);
  //判断
  if (iq >= 140)
  {
    printf("Genius\n");
  }
  return 0;
}

image.gif

image.gif编辑

2.3,我们实现多组输入的思路

如何实现多组循环思路
多组输入就是那多组数据去测试,不会只测试一组数据,判断完就结束
为了实现多组输入,我们想让这个代码多组输入,就要让代码循环起来
我们是不是要让这个scanf接收一个数据,判断一下,然后在接收数据,在判断,如此循环下去。
我们写一个while(),在while()判断的条件的地方放上scanf("%d", &iq)
我们都知道,while循环是先执行判断语句
while循环判断scanf,得到一个返回值,如果返回值为真的话,while循环就进来
正好你读到了iq,while就判断iq,直到我们这里读取数据失败,为假的时候就跳出循环
我们想要的拿scanf的返回值判断的话,我们就要知道scanf的返回值是什么。

我们打开一个叫https://cplusplus.com/doc/tutorial/的网站
回到老版,然后输入搜索scanf,然后我们可以看到scnaf的返回类型是int
返回的整型是什么呢,我们往下翻,可以看到一个Return Value,他的意思接收返回值
是描述的scanf的返回值相关的一个意思,这一段英文描述的是什么意思呢,
如果scanf读取了几个数字,就返回读取到数字的个数
如果它返回1就是读取正常了

image.gif编辑

image.gif编辑

image.gif编辑

2.4,第一种正确的解法

scanf 函数是输入函数
函数的返回值是:int
如果读取成功,返回的就是实际读取到的数据的个数
如果函数读取失败,就返回EOF
非常简单的写法就是scanf == 1,scanf读取到一个数字,如果返回值=1,就证明读取正常,就进去判断

我们将使用代码,注释和运行结果图来理解:

int main()
{
  //输入
  int iq = 0;
  //scanf 函数是输入函数
  //函数的返回值是:int
  // 如果读取成功,返回的就是实际读取到的数据的个数
  // 如果函数读取失败,就返回EOF
  //非常简单的写法就是scanf == 1,scanf读取到一个数字,如果返回值=1,就证明读取正常,就进去判断
  //
  while (scanf("%d", &iq) == 1)
  {
    //判断
    if (iq >= 140)
    {
      printf("Genius\n");
    }
  }
  return 0;
}

image.gif

image.gif编辑

2.5,第二种正确的解法

scanf 函数是输入函数
函数的返回值是:int
如果读取成功,返回的就是实际读取到的数据的个数
如果函数读取失败,就返回EOF,EOF的值-1
非常简单的写法就是scanf == 1,scanf读取到一个数字,如果返回值=1,就证明读取正常,就进去判断
我们就去判断如果scanf读取一个整数的时候,发现没有读到,发现失败了,就返回EOF

如果返回的不是EOF,就是读取成功了。就为真,不等于EOF所以为真    

我们将使用代码,注释和运行结果图来理解:

int main()
{
  //输入
  int iq = 0;
  //scanf 函数是输入函数
  //函数的返回值是:int
  // 如果读取成功,返回的就是实际读取到的数据的个数
  // 如果函数读取失败,就返回EOF,EOF的值-1
  //非常简单的写法就是scanf == 1,scanf读取到一个数字,如果返回值=1,就证明读取正常,就进去判断
  //我们就去判断如果scanf读取一个整数的时候,发现没有读到,发现失败了,就返回EOF
  while (scanf("%d", &iq) != EOF)//如果返回的不是EOF,就是读取成功了。就为真,不等于EOF所以为真                
  {
    //判断
    if (iq >= 140)
    {
      printf("Genius\n");
    }
  }
  return 0;
}

image.gif

image.gif编辑

2.6,多组输入的第二种输入方法

我们还可以这样输入,同样while执行的时候是读取一个,判断完,在读取下一个

我们将使用代码,注释和运行结果图来理解:

image.gif编辑

2.7,如何停止多组输入

我们怎么停止这个代码呢,
第一种方法就是ctrl+z就是可以停止
因为ctrl+Z可以让scanf返回EOF
但是在vs2022上你会发现需要按三个ctrl+z,才能结束这个程序
这是vs的一个bug,其他的编译器按一个ctrl+z就结束了

image.gif编辑


总结

以上就是今天要讲的内容,本文仅仅全面介绍了C语言的多组输入问题,可以让你在c语言的探险更加有趣,充实。

相关文章
|
11月前
|
C语言 Windows
【初阶C语言】关于scanf函数的超详细介绍和多组输入
【初阶C语言】关于scanf函数的超详细介绍和多组输入 我们学习一个函数,要围绕三个点:1.函数是什么 2.函数的用法 3.注意的细节
214 0
|
3月前
|
存储 编译器 C语言
三:《初学C语言》— 输入与输出
在C语言中,当我们需要给变量输入值时就可以使用输入函数scanf(),将键盘输入的值放在变量里;如果需要给变量的值输出在屏幕上的时候可以使用输出函数printf()
47 9
三:《初学C语言》—  输入与输出
C4.
|
4月前
|
C语言
C语言数据的输入与输出
C语言数据的输入与输出
C4.
31 0
|
4月前
|
Unix 编译器 Linux
C语言多组输入
C语言多组输入
45 0
|
4月前
|
存储 安全 C语言
C语言中的输入与输出
C语言中的输入与输出
60 0
|
10月前
|
编译器 C语言
23 C语言 - 输入 & 输出
23 C语言 - 输入 & 输出
48 0
|
4月前
|
C语言
多组数据的输入方法(c语言实现)
多组数据的输入方法(c语言实现)
|
4月前
|
存储 C语言
C语言——数据输入和输出
C语言——数据输入和输出
31 0
|
10月前
|
C语言
多组输入的两种写法(C语言)
多组输入的两种写法(C语言)
138 0
|
10月前
|
编译器 C语言 C++
C语言--多组输入类题目
C语言--多组输入类题目
45 0