第二次作业
作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292
第三次作业:7-1计算存款利息
#include<stdio.h> #include<math.h> int main() { double rate,interest,year,money; scanf("%lf %lf %lf",&money,&year,&rate); interest = money * pow(1 + rate,year) - money; printf("interest = %.2lf",interest); return 0; }
解题思路:
首先是将标准的格式打出来,因为本题涉及平方,要打math.h才能够正常运算。
用scanf输入变量的具体数值,打出计算公式进行计算。
最后printf打印出结果。
调试信息:
没有注意保留小数点后两位和前面的interest
题目要求是保留小数点后两位,保留两位小数,就在lf前加入.2,而且给的输出样例中有interest =,必须和输出样例一模一样,否则还是答案错误,那就在printf中加入interest = ,输出的结果就会打印出这几个字,答案就正确。
最终和输出样例一样。
第四次作业 7-2高速公路的超速处罚
#include <stdio.h> int main() { int x,y; double a; scanf("%d %d",&x,&y); a=(x-y)*100.0/y; if(a<10) { printf("OK\n"); } else if(a >= 10 && a < 50) { printf("Exceed %.lf%%. Ticket 200\n",a); } else if(a >=50){ printf("Exceed %.lf%%. License Revoked\n",a); } return 0; }
解题思路:
先定义变量 x y,在定义浮点型的a,xy代表车速和限速,a是超速的百分之多少。
首先,要计算出超出是百分之多少,超出部分的计算方法是 x-y是超的多少速,再/y就是超出原速度的多少,题目要求的是百分号所以先*100,最后在结果上加百分号。
其次,用if条件语句进行判断运行哪个,,因为*100,第一就是<10 ,第二是>=10 && <50,第三是>=50。
流程图
调试信息:
一开始输出的发现后面没有百分号,
怎么改也没用,就上网百度了,知道要想输出%要打两个,好像是因为%也有取余的意思,要想%就要打%%,改完发现变成部分正确
这两个地方在后来也改过来了,但我发现还是不对。在调式过程中我也把3个样例输了一遍和输出样例一样,但pta上就是部分正确下面我三张调试的图。
和输出样例一样,但就是不对,一直没看出来什么,但后来我试了这样的一组数 200 150
z大于等于50,输出的数却小于50% ,并且吊销了驾照,正常应该是罚两百,我发现if()里不应该是z, 应该是a,我当时应该只想到 y=100,如果y只等于100,这样确实成立,但其他就不行了。后来我就把括号里的改成a了 ,z感觉没啥用就删掉了。
这样就成功了。
个人总结
1.本周主要学习的是字符型数据的输入和输出,switch语句和for循环。知道了字符型数据,需要char op调动,用switch语句进行简单的计算器,和数字,字符的转换,for循环可以重复执行,打印出表格来。
2.for循环比较难,for括号里的语句总是不知让人写什么,循环体要是简单的还能做一做,碰到复杂的不知道怎么写,没怎么接触,还要练习。switch,case还好,目前感觉还好,没遇到到过什么难的。有上网查查资料,和看看书上的例子。
表格
折线图
作业点评:
http://www.cnblogs.com/zjy5201314/p/9900818.html
http://www.cnblogs.com/freedomjdp/p/9845635.html
http://www.cnblogs.com/DX552ZYM557/p/9911775.html