c语言scanf输入浮点型_double类型用scanf输入

程序是人机交互的媒介,有输出必然也有输入,我们开始讲解如何从键盘输入数据。在C语言中,有多个函数可以从键盘获得用户输入:

  • scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。

  • getchar()、getche()、getch():这三个函数都用于输入单个字符。

  • gets():获取一行数据,并作为字符串处理。

c语言scanf输入浮点型_double类型用scanf输入

scanf() 是最灵活、最复杂、最常用的输入函数,但它不能完全取代其他函数,大家都要有所了解。

scanf()函数

scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和 printf 的功能正好相反。

举例

#include<stdio.h>

int main()

{

int x=0;

printf(“1+1=?\n”);

scanf(“%d”,&x); //格式:scanf(“格式控制字符串”,&地址列表);

if(x!=2)

printf(“你的数学是体育老师教的吗?\n”);

else

printf(“恭喜你,答对了!\n”);

return 0;

}

运行结果:

c语言scanf输入浮点型_double类型用scanf输入

对于 scanf(),输入数据的格式要和控制字符串的格式保持一致。

其实 scanf 和 printf 非常相似,只是功能相反罢了:

scanf(“%d %d”, &a, &b); // 获取用户输入的两个整数,分别赋值给变量 a 和 b

printf(“%d %d”, a, b); // 将变量 a 和 b 的值在显示器上输出

它们都有格式控制字符串,都有变量列表。不同的是,scanf 的变量前要带一个&符号。

&称为取地址符号,也就是获取变量在内存中的地址。

数据是以二进制的形式保存在内存中的,字节(Byte)是最小的可操作单位。

为了便于管理,我们给每个字节分配了一个编号,使用该字节时,只要知道编号就可以,

就像每个学生都有学号,老师会随机抽取学号来让学生回答问题。字节的编号是有顺序的,从 0 开始,接下来是 1、2、3……

下图是 4G 内存中每个字节的编号(以十六进制表示):

c语言scanf输入浮点型_double类型用scanf输入

这个编号,就叫做地址(Address)。

int a;会在内存中分配四个字节的空间,我们将第一个字节的地址称为变量 a 的地址,也就是&a

的值。对于整数、浮点数、字符,都要使用 & 获取它们的地址,scanf 会根据地址把读取到的数据写入内存。

再来看一个 scanf 的例子:非常重要

#include <stdio.h>

int main()

{

int a, b, c;

scanf(“%d %d”, &a, &b);

printf(“a+b=%d\n”, a+b);

scanf(“%d %d”, &a, &b);

printf(“a+b=%d\n”, a+b);

scanf(“%d, %d, %d”, &a, &b, &c);

printf(“a+b+c=%d\n”, a+b+c);

scanf(“%d is bigger than %d”, &a, &b);

printf(“a-b=%d\n”, a-b);

return 0;

}

运行结果:

c语言scanf输入浮点型_double类型用scanf输入

第一个 scanf() 的格式控制字符串为”%d %d”,中间有一个空格,而我们却输入了10 20,中间有多个空格。

第二个 scanf() 的格式控制字符串为”%d %d”,中间有多个空格,而我们却输入了100 200,中间只有一个空格。这说明 scanf() 对输入数据之间的空格的处理比较宽松,并不要求空格数严格对应,多几个少几个无所谓,只要有空格就行。

第三个 scanf() 的控制字符串为”%d, %d, %d”,中间以逗号分隔,所以输入的整数也要以逗号分隔。

第四个 scanf() 要求整数之间以is bigger than分隔。

用户每次按下回车键,程序就会认为完成了一次输入操作,scanf() 开始读取用户输入的内容,并根据格式控制字符串从中提取有效数据,只要用户输入的内容和格式控制字符串匹配,就能够正确提取。

本质上讲,用户输入的内容都是字符串,scanf() 完成的是从字符串中提取有效数据的过程。

最后需要注意的一点是,scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。

这个例子你搞懂了,简单的scanf用法就没问题了,所以认真看完思考。

scanf() 格式控制符汇总

格式控制符 说明

%c读取一个单一的字符

%hd、%d、%ld读取一个十进制整数,并分别赋值给 short、int、long 类型

%ho、%o、%lo读取一个八进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型

%hx、%x、%lx读取一个十六进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型

%hu、%u、%lu读取一个无符号整数,并分别赋值给 unsigned short、unsigned int、unsigned long 类型

%f、%lf读取一个十进制形式的小数,并分别赋值给 float、double 类型

%e、%le读取一个指数形式的小数,并分别赋值给 float、double 类型

%g、%lg既可以读取一个十进制形式的小数,也可以读取一个指数形式的小数,并分别赋值给 float、double 类型

%s读取一个字符串(以空白符为结束)

这就是scanf的基本用法了,如果不明白的就多看几遍,最好上机自己敲一敲,改一改,怕忘记,就收藏起来以后再看。

还有scanf的用法进阶的后面会写欢迎订阅点赞,谢谢!

本文【c语言scanf输入浮点型_double类型用scanf输入】由作者: B/S结构 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4082.html

(0)
上一篇 2023-03-08 10:52:02
下一篇 2023-03-08 11:01:20

相关推荐

  • gamma校正曲线函数

    伽马校正也称为伽马变换,或幂次变换。伽马校正主要用于图像的校正,将漂白的图像或者是过黑的图像进行修正。伽马校正也常用于显示屏的校正,这是一个非常常用的变换,其所用的公式如下所示: 上式中C是常数,s是输入像素值,t是变换之后像素值,γ是幂次变换的指数值。若数字图像的值归一化到[0,1],则其输出的值也在[0,1]范围内。对于不同的伽马值,其对应的变换曲线如下…

    2023-03-21
    000
  • dns解析异常是什么原因_dns老是异常到底什么原因

    一般情况下,新建或修改域名解析之后,可能很快就可以生效。但有时也存在一些解析比较慢的情况。解析不生效或生效比较慢的原因很多,除了网络不可用,域名被劫持等因素外,还存在几种比较常见的情况。下面,中科三方为大家简单介绍下DNS不生效的几种原因。 1.查看域名状态是否异常 如果出现域名解析长时间不生效,就需要检查一下域名的状态,可以通过whois工具查看域名当前的…

    2023-03-11
    700
  • bin文件安装提示下一张磁盘

    BIN软件包安装方法如下: 1,打开BIN安装包属性,把文件权限修改为可读写权限,同时允许作为程序执行。 2,在Linux终端下输入BIN安装包绝对路径外加CHMOD +X命令执行。 3,按确认后,Linux终端启动BIN安装包安装指引,依提示安装既可。 4,等待安装完成既可,Linux BIN软件包既可安装完成。

    2023-03-13
    300
  • pascal程序

    1 编程语言的演变 ALGOL一开始的设计目标就是描述算法,连一个标准的I/O都没有定义,导致其在商业应用上受阻。 虽然在商业应用上没有成功,但ALGOL开创的思想,影响了我们现在所熟知的编程语言,成为很多编程语言的根。 2 程序设计思想的演化 1968年,荷兰学者E.W.Dijkstra提出了程序设计中常用的GOTO语句的三大危害:破坏了程序的静动一致性;…

    2023-03-18
    300
  • html具体含义(html叫什么中文)

    1 什么是HTML HTML 是用来描述网页的一种语言。HTML 是一种在 Web 上使用的通用标记语言。HTML 允许你格式化文本,添加图片,创建链接、输入表单、框架和表格等等,并可将之存为文本文件,浏览器即可读取和显示。 HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而是一种标记语言 标…

    2023-03-21
    000
  • java程序的运行环境简称为_java开发环境简称

    JDK是SUN提供的一套Java开发环境,全称JavaDevelopmentKit,简称JDK,它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等。 在JDK安装完毕后,会在硬盘上生成一个目录,该目录被称为JDK的安装目录,如图1所示。 为了更好地学习JDK,初学者需要对JDK安装目录下的子目录及文件的…

    2023-03-09
    700
  • 公式编辑器空格打不出来

    在word文档编写是,可能会需要用到公式编辑器,在使用同时也会遇到一些小问题, 请点击此处输入图片描述 下面我整理了些问题与解答方案: 1、word 里空格怎么输入到公式编辑器中? 按快捷键ctrl+shift+space即可。 2、word 中公式大小全小一号? 首先,在Mathtype 中的菜单Size 中选define,定义所需的字号大小;再次,在Ma…

    2023-03-17
    100
  • 华为思科认证考试时间

    思科认证是由网络领域著名的厂商–Cisco公司推出的。该公司针对其产品的网络规划和网络支持推出了工程师资格认证计划(Cisco Career Certification Program,简称CCCP),并要求其在各国的代理拥有这样的工程师,以提高对用户的服务质量,建立Cisco产品网络工程师的资格认证体系。思科认证是互联网领域的国际权威认证。 报…

    2023-03-16
    000
  • 高级程序员是什么职称

    计算机专业中级职称有哪些?那些高级软件工程师职称是怎么来的? 一、计算机专业中级职称考试可以考: 1、计算机软件专业:软件评测师、软件设计师、软件过程能力评估师 2、计算机网络专业:网络工程师 3、计算机应用技术专业:多媒体应用设计师、嵌入式系统设计师、计算机辅助设计师、电子商务设计师 4、信息系统专业:系统集成项目管理工程师、信息系统监理师、数据库系统工程…

    2023-03-12
    200
  • 条件运算符是一个三目运算符_三目运算符有哪些

    1.1 三目运算符 又叫做三元运算符,是一组运算符。 1.1.1 三元运算符的格式 条件表达式 ? 在这里处理结果为true的功能、结果 : 在这里处理结果为false的功能、结果; 或者: 条件表达式 ? 处理方式1 : 处理方式2; 条件表达式,最终得到的结果,要么是true,要么是false,其他的都不行。只能是boolean类型 不管表达式的结果是t…

    2023-03-09
    400

发表回复

登录后才能评论
返回顶部
错说博客上线啦!