当前课程知识点:C语言程序设计(上) > 选择结构的程序设计 > 3.4 多分支问题的C程序设计 > 3.4.2 加减乘除计算
下面我们结合一个实际的例子
这个例子是
加减乘除计算
我们给小学生编一个小程序
让他在电脑上练习做加减乘除法
计算机不断的给小学生出个题
出的这个题也可能
是加法也可能是减法 乘法 除法
电脑会问
答案是多少
比如
2加3等于几
小学生回答说
2加3等于5
回答一个5
计算机会判断
这个结果是正确的
如果你回答错了
它会在里边做判断
你给的答案和实际真正
计算机做了一个运算
学生做了一个运算
他输入的结果和
计算机算的结果要一致
它就会说对了
否则它就会说你答错了
这个例子
是这样
这里边是不是我们要形成这么一个
你输入两个数
你还要输入什么
输入这个运算符
你到底加减乘除是哪个
要输入三个东西
两个是变量
两个是数值型的
一个是什么 是字符型的
程序是不是可以这样写
我们看这一大片
大家会不会觉得
这个有点长
其实是简单的
下面是很格式化的东西
这样子
我们用float定义了两个变量
和一个字符型的变量
然后把它们三个读进来
先读一个数
再读一个操作符
再读一个数
然后后边怎么判断
用你读进来的运算符去判断
大家刚才说运算符不是一个
加减乘除字符吗
对 字符里边不就是它的ASC码值吗
这就是一个
实际上的一个数值
我现在怎么判断
是你敲进来的
比如我们刚才敲的是减
假如敲的是减
减的ASC码值
它第一碰到的是case
它的ASC码值等于加的ASC码值吗
当然不是
那不是
就不做底下的这一堆东西了
它就直接问第二个
刚才敲进来的减
是这个减的ASC码值吗
一致
它就做了printf
做的什么
做了第一个数
按照点2的形式
再减号 再第二个数
再等号
等完了是什么
结果
这个结果
是计算机先给你算一遍
d1减上d2的结果
然后在这显示
显示完了这时候
计算机没有问结果是多少
没有判断
计算机直接告诉小朋友
你输入的第一个数
减上第二个数你得到的是这个数
所以我们这个题目
简化了一下
是计算机告诉你说
猜你给的那两个数
它的运算结果是多少
计算机给了一个结果
然后break出来
底下是因为有break
所以流程到了
就是switch的结构
到了switch的下面
如果没有break
它会继续输出这个
再输出下面
这块还有一个问题
大家有没有注意到
如果输入的
比如我们刚才输入的是除
是加吗 不是
减也不是 乘也不是 是除OK
除下边做了一个判断
d2是0吗
那你d2就是要做除数的
不能被0除
如果是0的话
现在就告诉你说你被0除了
你应该出去
出去了吗这块
你被0除了
有没有出去
出到哪里
是出到switch的外边
还是出的if结构的外边
我们知道在程序里边
所有的结构
只跳出来它自己的结构
这块是说
被0除了给了你一个提示
做完这件事情
自动回到它if结构的外边
if结构的外边是哪里
是else块的下边break
是这个break
也就是说如果你不是0
我就直接做了除法
这个除法做完也是到这 break
也就说你是0
我给你一个提示到了break
你不是0
我直接做除法
也到了break
就是无论怎么样我都会到了break
回到switch这
这里边还有一个要说明的default
default是什么意思呢
如果我们敲的时候
加减乘除都没敲
一不小心
我本来要敲加敲了个括号
那现在是这没拦住
减也没拦住 四个运算符都没拦住
怎么办
这统统归到
除过这四个判断
之外的所有东西都走了default
那这个default是告诉说
你输入了一个其它的运算符
不符合我们的要求
你也跳到了
因为整个这个块执行完了
跳到了后边
这就是
这个程序的功能是做什么呢
你从键盘上给的是
一个数据一个运算符再一个数据
计算机告诉你说
你刚才给你两个数据
和你要的这个运算符
它的结果是什么
直接告诉你了
没有问你
那么大家可不可以把这个程序改成
计算机它运算
它却没有告诉你这个结果
而是在后边问你
请你输入这个计算的结果是什么
然后它把你敲的这个计算结果
跟它算的结果去比较
然后告诉你正确还是不正确
把这段实现这个功能的程序
大家可不可以
改到这个程序里边运行一下看
这样就可以实地的给小学生
做一个练习
加减乘除运算的一个应用程序
-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