当前课程知识点:C语言程序设计(上) > 数据计算实现与顺序结构程序设计(一) > 2.1 算术运算的C程序实现 > 2.1.5 输入格式造成的计算错误
我们结合这个例子
还讨论一点问题 就是我们关于
人机交互的输入问题
我们在scanf里边
如果用了这种格式
计算机会说什么样
实际上你看到的编译系统
没有告诉你任何错误
但是 执行下来的情况是什么样子
我们看一下这块的执行
这是咱们刚才讨论的程序
这个程序里边第一个给了一组
是都正确的
然后输出的也是f型的格式
我们来运行一下这个程序
我们刚才给的第一组数据是1
得到的结果
我们把这个程序 刚才说到
如果我们改一下
我是想强调什么
在输入的时候
不能指定这种域的
不管是4.2 还是点2
比如说 我们现在说4.2
对a指定了一个格式
这时候
我们看一下 咱的程序运行一下
边域没说有问题
我们输入刚才
我们看这个结果
看到了一个跟刚才不一样的结果
这个结果一定是错的
我们再回来看
我们先把4.2去掉
看一下正确的过程
我们还输第一组数据
我们看到 大家记住了
我们再把这个值改了
所有地方都不动
我们就改了4.2
给输入 定义一个输入的格式
重新把这件事做一下
我们看到底是d变化了
还是说它的
我们看从哪里就开始变化
d就开始变化
d这就开始变化
就说这里边
我们再看程序
从d这变化 d并没有除法
也就是说
不是因为相除带来的问题
那是什么问题
我们刚才读进来的是a
我们想不想看一下
我们读的a是f格式
我们再把a输出来
再看一下a
我们看 我刚才输入的1
到底输出的a里边是不是1
我们看这个程序有错 我们忘了
一定要有格式符f
然后 后边没有错
我们到底看
给a这个数据加了一个
域的描述以后
它是不是正确
我送的是a
可是a里边
我什么都没做 就把a拿出来输出
它实际上现在接收的不是a 是0
什么意思 我想说一下
在人机交互输入的时候
通常也会有这种问题
大家从printf复制过来带格式的
就不经意的把它放在这
实际上你提供的数据
编译的时候也不会发现错误
它会很流畅过去
但是 实际上
a里边取的值不是你送进去的值
从开始这块 原始数据就出现了错误
我们想讨论的是关于人机交互的输入
如果我们给scanf带着格式的话
你指定的这个格式
将导致语言系统
不理解你这个格式是什么
但是编译系统并不会发现
所以造成原始数据出错
所以 这块大家在
输入输出的一个切换 经常因为
为了录入方便 大家经常复制
复制的时候一定要注意
在输入的时候是不带格式
对动态的人机交互的输入
-1.1 计算机的问题求解方法
--讨论题:数学模型
-1.1 计算机的问题求解方法--作业
-1.2 C语言与C程序
--讨论题:运算符
-1.3 C语言处理系统与程序调试运行
--例程
-1.4 程序中的人机交互
--例程
--作业讨论区
-2.1 算术运算的C程序实现
--算术混合运算.c
-2.1 算术运算的C程序实现--作业
-2.2 关系运算的C程序实现
--bukao.c
--字符比较.c
--讨论题:比较大小
-2.2 关系运算的C程序实现--作业
-第二周作业--作业
-2.3 逻辑运算的C程序实现
--计算结合性
--闰年.c
--自动购票问题.c
-2.3 逻辑运算的C程序实现--作业
-2.4 位运算的C程序实现
--讨论题:位运算
-2.5 几种很个别的运算
--讨论题
--讨论题
-2.5 几种很个别的运算--作业
-2.6 混合运算及数据类型转换
--讨论题:数据类型
-2.7 顺序结构程序实例
--Video
--三角形面积.c
--讨论题:工业产值
-2.7 顺序结构程序实例--作业
-3.1 程序中的路径选择实现
--打印学生成绩.c
--一元二次方程.c
-3.1 程序中的路径选择实现--作业
-3.2 路径中的再选择——嵌套判断
--例程
--讨论题:程序改错
-3.2 路径中的再选择——嵌套判断--作业
-3.3 复杂判断问题的C程序设计
--3.3 多级选择
--银行存款.c
--讨论题:多级选择
-3.4 多分支问题的C程序设计
--加减乘除运算.c
-3.4 多分支问题的C程序设计--作业
-3.5 GOTO的适当使用
-3.6 选择结构的程序实例
--3.6 程序展示
--计算第几天.c
--讨论题:输出奇数
--讨论题:计算税金
-3.6 选择结构的程序实例--作业
-第四周作业--作业
-4.1 需要重复执行的程序
--求和.c
--打印学生成绩.c
--统计录入速度.c
--求平均数.c
-4.1 需要重复执行的程序--作业
-4.2 至少要执行一次的循环
--n的阶乘.c
--字符分类统计.c
-4.2 至少要执行一次的循环--作业
-4.3 已知循环次数用for语句
--求和问题.c
--数列求和.c
--讨论题:循环语句
-4.3 已知循环次数用for语句--作业
-4.4 循环控制——简单循环应用
--水仙花数.c
--讨论题:死循环
--讨论题:猜数字
-循环结构的程序设计(一)--4.4 循环控制——简单循环应用
-4.5 循环的嵌套
--讨论题:程序运行
-4.5 循环的嵌套--作业
-4.6 break与continue
--最大素数.c
-4.6 break与continue--作业
-4.7 循环的综合应用
--数的排列组合.c
--鸡兔同笼.c
--打印空心字符.c
--讨论题:打印图形
--讨论题:计算闰年
-第六周作业
-第六周作业--作业
-5.1 同类有序数据处理问题
-5.2 一维数组的定义和引用
--数组定义.c
--数组初始化.c
--反向输出.c
--讨论题:对称数
-5.2 一维数组的定义和引用--作业
-5.3 一维字符串数组
--讨论题:编程
-5.4 字符串处理函数
--字符串反向.c
--字符串函数
-5.5 二维数组的定义与使用
-5.6 二维数组的输入输出
-5.6 二维数组的输入输出--作业
-5.7 二维数组的应用
--转置矩阵.c
--讨论题:修改程序
-5.8 二维字符数组
--5.8 单词排序
--单词排序.c
-5.8 二维字符数组--作业
-5.9 数组综合应用
--统计成绩.c
--统计字符次数.c
--讨论题:洗牌
-本期课程结束语
--end
-第八周编程作业
-《C语言程序设计(上)》期末复习参考
--html
-《C语言程序设计(上)》期末复习参考答案
--html