10月18日每日总结

今天PTA选择题上有三个点总结:

首先2-9题
在这里插入图片描述
这一题我在做的时候,没什么问题,可是在老师讲的时候,我居然忘了这题错在哪里,考点很白痴,既然忘了就再总结一次:
if-else语句中若真/假的执行语句不止一条,要用{ }给括起来。

其次2-11题
在这里插入图片描述
在codeblock里,if()里不能用赋值“=”,会显示编译错误,必须改成比较中的等于“ = = ”。但其实,if()的判断语句中是可以用赋值的,因为if语句只吃判断语句的真假,即 !=0或 =0。故,这里并没有语法错误,只是codeblock中不允许而已。若在if()中用赋值语句,此时真假取决于“=”右边的值(反正会赋到左边,就用右边的值就好。。。我是这么理解的),比如在这题中,X2+X3=0,所以if为假执行printf(“# # # #”)。
(我一定要强调一下,这题我没错!只是觉得重要)

最后2-7题
在这里插入图片描述
唯一错的一题,不难,但错就错在我没仔细读题,这是最遗憾的
仔细看第一行if(X>Y);,看起来很正常的if语句,我一眼就过去了当然看不见后面还有个“;”!!所以当X>Y时执行真,即空语句(;),其后没有else所以此时if语句结束,也就是这题可以改成:
x=-x;
if(x<y)
y=-y;
printf(“x=%d,y=%d\n”,x,y);
即无论xy的值为多少,后面第二行的x=-x;都会执行。
以此题为鉴,以后审题一定细心!!!最后这题应该是选B

而且这两天做题又学到俩个新语句:
如何开平方根和如何求绝对值
他们都要用到头文件#include<math.h>(额外加的,其他的像<stdio.h>还得加)
平方根:x=sqrt(y);
绝对值:x=abs(y); x=fabs(y);
理论上abs是给int整型用的,而fabs是给float浮点型用的,但我在codeblock上发现一个问题:
abs可以用于整型和浮点型,但用于整型时会给警报warning,但不影响运行而且输入输出并无问题;
而fabs只能用于浮点型,若用于整型则会警报并且运行时会出错。

PS:补充一个之前误会的问题,在codeblock上写代码时,编译过程有可能会有warning和error提示出现,我一直以为只要有其中一个就是编译错误,实则不然。warning只是警报,可以编译但程序运行可能有问题;error才是错误,此时编译失败程序无法运行。这件事告诉我,思考归思考,不能想当然。

猜你喜欢

转载自blog.csdn.net/AdamMaoKkk/article/details/83144526