
在昨天的笔记最后我们完成了一道温度转换的简单题目代码如下整体逻辑很顺畅定义浮点数然后利用scanf进行输入中途还通过了转换公式将我们所输入的华氏温度转换为了摄氏温度最后输出。但事实上有关于浮点数、公式运算的内容我们还能够再深入了解一些。首先来看最好理解的运算问题我们在编程中利用表达式进行运算一个表达式中包含着运算符和算子。例如我们上图中所写的s ((h-32)*5)/9其中运算符是指进行运算的一些符号比如“-”、“*”、“/”、“”而算子指的是参与运算的值比如h、32、5、9.对于算子而言我们都十分的熟悉只要你接触过初中数学你就知道我们通常的计算既有纯数字的计算常量运算也有纯字母的运算变量运算甚至也可以是数字和字母相结合的运算比如我们上面所写的温度转换公式。所以算子是十分好接受的。而对于运算符我们其实接触的也不少下面是我们在编程中常用的一些运算符首先是算术运算符除了取余符号剩下的都是我们最常用的四则运算这里不再赘述。唯独要说一说的就是取余的含义在小学数学中我们就学习过除法不一定总是能够整除不能整除才是常态。在不能整除时就会产生余数“取余”就是单独把余数提取出来的意思。接下来再来看看赋值运算符纯数学的东西没有什么解释的空间只需要记住这样的符号表达了这样的运算即可。最后再来看看自增自减运算符以一个初学者的视角而言这些自增自减运算符有些难理解况且也不会在目前实际写代码的过程中使用。除非你要参加理论考试否则没必要搞明白实在得用的时候再去搜搜就行。以上我们列举的三种运算符是我们目前阶段就能够使用得到的。实际上在整个编程过程中我们还会用到关系运算符大于、小于...、逻辑运算符类似于与、或、非等我们后面要用的时候再来详细介绍。在数学中我们想要把一个表达式算对不仅需要知道加减乘除是什么意思还得知道他们的运算顺序。在编程中其实也一样只不过编程的时候除了基本的算术运算还有一些其它的运算符他们整体的运算顺序如下算术 关系 逻辑 赋值这个顺序不用死记硬背基本上还是与我们数学中的运算顺序差不多。在不确定的时候加上括号即可。以上的内容是我们在写运算代码时需要知道的一些基本知识。接下来我们通过一道例题来训练。我们先分析前三个小题第一步定义变量不是难事结合示例可以看出三种商品分别是苹果牛奶面包对应的购买数量应该不能够是常数而是需要我们自己输入否则起不到收银的效果。第二步由于要使用符号所以我们最好是把每种商品的总价算出最后再得出总价。第三步我们定义出支付金额那找零金额只需要用支付金额减去总价即可。初步代码实现如下代码可能有点繁琐但每一步的逻辑还是比较好理解。至于代码的优化我们放在最后。再来看第四个问题是交换两个变量的值的问题。假设我们的两个变量就像两个盒子我们想要把两个盒子内的东西进行交换我们肯定得有的过程就是“取出——放入”。在现实生活中我们可以把a盒子里的东西取出放在地面上然后把b盒子的东西取出、放入a中最后再把地面上的物品放入b中从而完成互换。但是在计算机中我们取出的东西是没有“地面”可以放的因此我们需要借助第三个变量代码如下在代码中我们借助了变量c第一步让c变为a的值可以理解为存储了a的值。之后再把b的值赋值给a此时a、b的值是相同的。最后再把c中储存的a值赋给b完成了互换。接下来解决第五个问题这个题比较无聊单纯是为了让你用用符号直接给出代码和结果最后我们需要打印一张格式整齐的小票代码如下#include stdio.h int main() { float a 5.5,m 12.8,b 8; int num1,num2,num3; printf(请依次输入苹果、牛奶、面包的购买数量(数字之间保持间隔)\n); scanf(%d %d %d,num1,num2,num3); float total0,total_a0,total_m0,total_b0; total_a a*num1; total_m m*num2; total_b b*num3; total total_atotal_mtotal_b; float pay; printf(请输入您所支付的金额为\n); scanf(%f,pay); float back; back pay - total; printf(\n超市购物小票\n\n商品 单价 数量 小计\n苹果 5.5 %d %.2f\n牛奶 12.8 %d %.2f\n面包 8.0 %d %.2f\n\n总价%.2f\n支付%.2f\n找零%.2f\n,num1,total_a,num2,total_m,num3,total_b,total,pay,back); return 0; }至此我们成功解决了这个问题。这一节主要是为了复习和巩固之前所学的内容对部分知识点进行了进一步的了解。在最后再来说一点点有关于变量和常量的事。浮点数我们一般用float来定义实际上也可以用double进行定义至于二者的不同可以借助AI进行了解下面是回答截图最需要注意的是不管是float还是double在printf进行输出的时候都可以用%f但是在scanf中double必须要用“%lf”(不是1也不是大写的i是L的小写)所以以后除非题目要求我们往往用double定义浮点数。最后再来讲讲常量事实上以初学者的角度出发没有必要将常量和变量区分的特别清楚因为我们目前的书写量较小不涉及非常复杂的逻辑。所以不会将不能更改的值不小心进行更改。但是对于未来而言将常用的常量值提前定义出来是没有坏处的。今天就到这里结束。