一、PTA实验作业
题目1:计算分段函数[2]
本题目要求计算下列分段函数f(x)的值:
1.实验代码
int main(){double x,y;
scanf("%lf",&x);
if(x>=0)y=sqrt(x);
else y=pow(x+1,2)+2*x+1/x;
printf("f(%.2f) = %.2f",x,y);
2 设计思路
1.定义xy浮点型变量
2.输入xy的值
3.判断x>=0,若是则y=sqrt(x);否则执行下一步
4.y=pow(x+1,2)+2*x+1/x;
5.输出xy的值
3.本题调试过程碰到问题及解决办法
问题:
1.忘记输入#include<math.h>
2.double写成int导致输出格式错误
3.数学函数不会写
解决方法:
1.翻阅书籍找到相应的函数借鉴
2.请教舍友互相交流
4.本题PTA提交列表
题目2:输出三角形面积和周长
本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√
s(s−a)(s−b)(s−c)
,其中s=(a+b+c)/2。
1.实验代码
int a,b,c;double s,x;
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&c+b>a){
s = (a+b+c)/2;
x = sqrt(s*(s-a)*(s-b)*(s-c));
printf("area = %.2f; perimeter = %.2f",x,1.0*(a+b+c));
} else{
printf("These sides do not correspond to a valid triangle");
2 设计思路
1.定义sx浮点型变量,及abc三个整数变量
2.输入abc的值
3.判断(a+b>c&&a+c>b&&c+b>a),若是则执行s = (a+b+c)/2; x = sqrt(s(s-a)(s-b)(s-c));printf("area = %.2f; perimeter = %.2f",x,1.0(a+b+c)否则执行下一步
4.输出These sides do not correspond to a valid triangle
3.本题调试过程碰到问题及解决办法
问题:
1.if后忘记加入{}
2.格式错误
解决方法:
1.经过检查后发现小问题
2.通过devc++调试
4.本题PTA提交列表
题目3:出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
1.实验代码
{int time; double distance,f,f1,F;
scanf("%lf %d",&distance,&time);
if (distance<=3)f=10;
else if(distance<=10)f=10+(distance-3)*2.0;
else if (distance>10)f=24+(distance-10)*3.0;
f1=time/5*2;
F=f1+f;
printf("%.0f",F);
2 设计思路
1.定义distance,f,f1,F浮点型变量,及time整数变量
2.输入distance,time的值
3.判断distance<=3,若是则执行f=10;否则执行下一步
4.判断distance<=10,若是则执行f=10+(distance-3)2.0;否则执行下一步
5.判断distance>10,若是则执行f=24+(distance-10)3.0;否则执行下一步
6.f1=time/5*2;
7.F=f1+f;
8.输出F的值
4 本题调试过程碰到问题及解决办法
问题:
1.设计算法时不会设计
2.忘记加入等待时间的钱
解决方法:
1.再次阅读题目后发现问题并解决
2.先用笔在纸上写出函数后在设计程序
4.本题PTA提交列表
题目4:程序设计联考
自从湖南农业大学、吉首大学和怀化学院组织程序设计课程联考以后,举办联考的经验越来丰富。尤其是在使用PTA系统作为考试平台之后,联考工作得到了很多学校的认可和支持。所以,现在参与联考的学校比较多。为了便于区分考生,考生账号的第一位是学校代号。1代表Hunan Agricultural University,2代表Jishou University,3代表Huaihua University,4代表Aerospace University,5代表Ocean University。 请编写程序根据考生的账号区分考生的学校。
1.实验代码
{int a,b;
scanf("%d",&a);
b=a/100000;
if(b==1)printf("Hunan Agricultural University");
else if (b==2)printf("Jishou University");
else if (b==3)printf("Huaihua University");
else if (b==4)printf("Aerospace University");
else if (b==5)printf("Ocean University");
else if(b>5) printf("Other University");
2 设计思路
1.定义ab2个整数变量
2.输入a的值
3.b=a/100000;
4.判断(b1),若是则执行printf("Hunan Agricultural University");否则执行下一步
5.判断(b2),若是则执行printf("Jishou University");否则执行下一步
6.判断(b3),若是则执行printf("Hunan Agricultural University");否则执行下一步
7.判断(b4),若是则执行("Huaihua University");;否则执行下一步
8.判断(b==5),若是则执行("Aerospace University");否则执行下一步
9.判断(b>5),若是则执行("Other University");
3.本题调试过程碰到问题及解决办法
问题:
1.不会用 if else if 语句
2.空格少打导致格式错误
解决方法:
1.经过检查后发现小问题
2.通过看书解决
4.本题PTA提交列表
二、截图本周题目集的PTA最后排名。
三、本周学习总结
1.你学会了什么?
1.理解了IF的用法,知道了分支结构在程序中的用法
2.学会了用嵌套结构处理问题以及if else的用法
2.本周的内容,你还不会什么?
大多数都会了-.-
3.你碰到什么困难,打算如何解决?
在写嵌套型时忘记了{}但是编译时可以输出,一直找不到原因。
还有一些基本的错误也一直在犯,如a==1写成a=1导致程序错误但是也不能在编译时找出错误。
还有;还是会忘记写。
总的来说是代码量不够大,书没看仔细,我会再接再厉争取更好、!