一,PTA实验作业
题目1.计算分段函数
本题目要求计算下列分段函数f(x)的值
1.代码
double x, result;scanf("%lf", &x);if (x >=0)result = sqrt(x);elseresult = pow( x + 1, 2) + 2 * x + 1 / x;printf ("f(%.2f) = %.2f\n", x, result);return 0;
2.设计思路
- (1)定义变量x和result;
- (2)用if else语句进行分支
- (3)x>=0 输出result = sqrt(x)
- (4)否则输出result = pow( x + 1, 2) + 2 * x + 1 / x
3.本题调试过程碰到问题及解决办法
- (1)未输入数学函数#include(math.h),后来提示编码错误才意识到
(2)数学函数语法记不牢,把sqrt打错,pow的运用也记不牢,只好重新翻书记忆
4.本题PTA提交列表
题目2.输出三角形面积和周长
本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。
1.代码
int a,b,c;double s,area,perimeter;scanf("%d%d%d",&a,&b,&c);if(a+b>c&&b+c>a&&a+c>b){s = (a+b+c)/2;area = sqrt(s*(s-a)*(s-b)*(s-c));perimeter = a+b+c;printf("area = %.2f; perimeter = %.2f\n",area,perimeter);}else{printf("These sides do not correspond to a valid triangle\n");
2.设计思路
- (1)定义三边a,b,c和s,面积area,周长perimeter
- (2)若三边符合三角形任意两边的和大于第三边,输出周长和面积
(3)不符合就输出These sides do not correspond to a valid triangle
3.本题调试过程碰到问题及解决办法
- (1)不懂得如何判断三角形任意两边的和大于第三边,最后去网上查阅
(2)没看清楚题目就开始写代码,前面要求直接输入数据,我打多了printf,导致一直错误,最后舍友提醒才意识过来
4.本题PTA提交列表
题目3.出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。
1.代码
double s,p1,p2,p;int n,t;scanf("%lf%d",&s,&t);if(s<=3){p1=10;}else if(s>3&&s<=10){p1=10+(s-3)*2;}else if(s>10){p1=24+(s-10)*3;}if(t<5){p2=0;}else if(t>=5){n=t/5;p2=2*n;}p=p1+p2;printf("%.lf\n",p);return 0;
2.设计思路
- (1)定义变量路程s,时间t,路程收费p1,时间收费p2,总费用p,和n
- (2)采用分支结构首先计算路程的收费p1
- (3)再使用另外一个分支计算时间的费用p2
(4)把路程费用p1和时间费用p2相加得总费用p,然后输出
3.本题调试过程碰到问题及解决办法
- (1)题目关系式太多,无法下手,只好请教同学和上网搜索
(2)把题目的路程收费关系式列错,答导致案一直错误,重新认真阅读题目才发现错误
4.本题PTA提交列表
题目4.程序设计联考
请编写程序根据考生的账号区分考生的学校
1.代码
int account,n;scanf("%d",&account);n=account/100000;switch(n){case 1:printf("Hunan Agricultural University",n);break;case 2:printf("Jishou University",n);break;case 3:printf("Huaihua University",n);break;case 4:printf("Aerospace University",n);break;case 5:printf("Ocean University",n);break;default:printf("Other University",n);break;}return 0;
2.设计思路
- (1)定义变量account,n
- (2)利用n=account/100000求出六位数的第一位数
- (3)采用switch语句,用caes 1-case 5来进行各个高校的输出
(4)如果n>5则输出Other University
3.本题调试过程碰到问题及解决办法
- (1)case后面用‘ ’来输入数字,导致结果只输出Other University,最后跟舍友讨论后发现错误
(2)不熟悉swtitch语句,只好翻开课本加深印象
4.本题PTA提交列表
二,截图本周题目集的PTA最后排名
三,本周学习总结
1.你学会了什么?
- (1)学会了switch语句,也加深else if等分支结构的知识与运用
- (2)要想写好算法,数学和细心必不可少,所以平时空闲时既要多敲代码,也要多学习数学,敲代码的时候要细心,不能太急躁,否则容易犯下小错误
(3)一道题目的算法有多种,在能计算的前提下要选择相对简单明了的算法,不能把题目复杂化。
2.本周的内容你还不会什么?
- (1)最主要的问题还是各种语法的熟练度不够
(2)编码错误时无法自己辨别错误在哪里,最后都是通过网上查询和请教舍友才明白错误所在
3.你碰到什么困难,打算如何解决?
- (1)首先自己来检查,来发现错误所在。
- (2)实在检查不出来就请教舍友和班上的同学还有老师。
(3)多去网上查阅相关的知识,找出大致相同的算法来对比,找出错误。