C语言第二次博客作业---分支结构
一、PTA实验作业
题目1:计算分段函数[2]
本题目要求计算下列分段函数f(x)的值:
f2-11
注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。
1.实验代码
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);
return 0;
2 设计思路
第一步:定义两个双精度浮点型变量x,y
第二步:从键盘输入一个数存入x中
第三步:若x大于等于0则y等于根号x
第四步:否则y= pow(x+1,2) + 2*x + 1/x
第五步:输出y
3.本题调试过程碰到问题及解决办法
1.要开根号跟求平方时只输入了sqrt以及pow导致答案不准确。解决方法:在代码开头输入#include<math.h>
4.本题PTA提交列表
题目2:7-4 输出三角形面积和周长
1.实验代码
int a,b,c;
double s,area,primeter;
scanf("%d%d%d",&a,&b,&c);
s=(1.0*a+1.0*b+1.0*c)/2;
area=sqrt(s*(s-1.0*a)*(s-1.0*b)*(s-1.0*c));
primeter=a+b+c;
if(a+b>c&&a+c>b&&b+c>a){
printf("area = %.2f; ",area);
printf("perimeter = %.2f",primeter);
}
else{
printf("These sides do not correspond to a valid triangle");
}
2 设计思路
第一步:定义三个整形变量a,b,c
第二步:输入三个整形变量分别存入啊a,b,c中
第三步:定义三个双精度浮点型变量s,area,primeter
第四步:计算s=(1.0a+1.0b+1.0c)/2;
第五步:计算area=sqrt(s(s-1.0a)(s-1.0b)(s-1.0*c));
第六步:计算primeter=a+b+c
第七步:判断a,b,c是否满足两边之和大于第三边,若满足则输出area和perimeter若不满足则输出These sides do not correspond to a valid triangle
3.本题调试过程碰到问题及解决办法
1.对分支结构掌握不熟练导致程序判断错误输出错误的答案。解决方法:通过调试,修改if条件句中的条件。
4.本题PTA提交列表
题目3:7-6 出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
1.实验代码
int fee,minute;
double mile;
scanf("%lf %d",&mile,&minute);
if(mile<=3.0&&minute<5){
fee=10;
}
if(mile<=3.0&&minute>=5){
fee=10+minute/5*2;
}
if(mile>3.0&&minute<5){
fee=10+(mile-3)*2;
}
if(mile>3&&minute>=5){
fee=10+(mile-3)*2+minute/5*2;
}
if(mile>=10&&minute<5){
fee=10+7*2+(mile-10)*3;
}
if(mile>=10&&minute>=5){
fee=10+7*2+3*(mile-10)+2*minute/5;
}
printf("%d",fee);
return 0;
2 设计思路
第一步:定义两个整形变量fee与minute
第二步:定义一个双精度浮点型变量mile
第三步:输入两个数分别存于mile与minute中
第四步:判定mile与minute与题目所给条件的关系
第五步:根据判定结果算出不同的fee的值
第六步:输出符合条件的fee值
3.本题调试过程碰到问题及解决办法
1.判定条件打的不准确导致结果错误。解决办法:通过Dev c的调试找出问题并修改
2.将mile定义为整形变量导致答案错误。解决办法:调试并更深一步了解整形变量与浮点型变量的定义并修改
4.本题PTA提交列表
题目4:7-8 程序设计联考
1.实验代码
int number,x;
scanf("%d",&number);
x=number/100000;
switch(x){
case 1 :
printf("Hunan Agricultural University");
break;
case 2 :
printf("Jishou University");
break;
case 3 :
printf("Huaihua University");
break;
case 4 :
printf("Aerospace University");
break;
case 5 :
printf("Ocean University");
break;
default:
printf("Other University");
break;
}
return 0;
2 设计思路
第一步:定义两个整形变量number,x
第二步:输入一个数存于number中
第三步:求出数number的第一位数字x
第四步:用switch语句对x进行判定
第五步:根据不同判定结果输出不同大学
3.本题调试过程碰到问题及解决办法
1.对于switch语句掌握程度不够,case语句后忘记加break导致结果错误。解决办法:通过看书上代码找出错误。
4.本题PTA提交列表
二、截图本周题目集的PTA最后排名。
三、本周学习总结
1.你学会了什么?
学会了用分支结构去编写c语言程序,并能通过分支结构去解决一些简单的问题。
2.本周的内容,你还不会什么?
对于if else语句跟switch语句的具体区别还不是太清楚,比如步知道什么时候用switch语句更方便。
3.你碰到什么困难,打算如何解决?
课后认真复习,勤思考,勤打代码,不会的问题多问同学跟老师。