第二次作业
作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292
第三次作业:7-5.计算分段函数[2]
#include <stdio.h> #include <math.h> int main(void) { double x=0,y=0; scanf("%lf",&x); if(x>=0){ y=pow(x,0.5); } else{ y=pow(x+1,2)+2*x+1/x; } printf("f(%.2lf) = %.2lf",x,y); return 0; }
解题思路:1.定义两个双浮点型变量x , y;
2.输入任一值 x;
3.如果输入的值 x 大于或等于0,则用y=x^(1/2)计算y的值,最后直接输出y值;
4.否则跳过if计算式,用y=(x+1)^2+2*x+1/x计算并输出y的值;
流程图:
运行结果:
刚开始程序运行一直出现答案错误,在DEVC++中试验发现结果与案例不同,小数点后的数过多,接下来,我进行了调试,输入案例中的数字10:
因为x=10>0,所以调到if句,再按回车,直接调到输出结果,结果出现:
与案例中的结果不一样,案例中是f(10.00)=3.16,而我的是f(10)=3,于是我意识到题中的要求,要保留两位小数,所以:
所以主要原因是输出双浮点应该是%.2f,而不是%.lf。以后要注意审题和输出写法。
第四次作业 7-2 高速公路超速处罚
#include <stdio.h> #include <math.h> int main(void) { double x,y; double a; scanf("%lf %lf",&y,&x); a=(y-x)*100/x; if(a<10||y<x){ printf("OK\n"); } else if(a>=50){ printf("Exceed %.0f%%. License Revoked\n",a); } else { printf("Exceed %.0f%%. Ticket 200\n",a); } return 0; }
解题思路:1.定义三个双浮点型变量 x, y, a;
2.输出两个x ,y的变量值;
3.用x,y的式子计算a;
4.如果a<10或y<x,则输出"ok";
5.如果a>=50,则输出Exceed x%. License Revoked;
6.否则输出Exceed x%. Ticket 200;
流程图:
运行结果:
提交发现只有第一个案例输出正确,接下来进行调试:输入案例1中的65,60;
这项没问题,输入案例2中的110,100;
发现输出结果与案例中不一致,接下来输入案例3中的200,120;
发现这个也与案例3答案不一致,之后我通过询问同学得知在输出中“f”后需输入两个“%”号,因为一个百分号是代表百分之几,另一个是输出数据必须要带的;结果:
所以以后要记住相同%号的不同用处。
本周总结:本周老师主要讲了条件switch语句,通过pta上的练习和课本上的联系发现了问题和获得了一些收获,通过老师的讲解和课本的详述了解并知道运行调试。
问题:1.发现一直出现输出上的错误,小数点后留多少位。
2.审题不清
3.不会想到转换,用几个未知数转化为一个,这样作为if句的条件
博客字数,代码行数:
作业点评:www.cnblogs.com/mayijing/p/9905748.html