题目1:计算分段函数[2]
本题目要求计算下列分段函数f(x)的值
(1).实验代码
double x,y;
scanf("%lf",&x);
if(x>=0){y=sqrt(x);
}
else{
y=pow(x+1,2)+x*2+1/x;
}
printf("f(%.2f) = %.2f\n",x,y)
(2)设计思路
- 1.定义两个浮点变量x,y
- 2.输入x的值
- 3.如果x>=0,执行y=sqrt(x)
- 4.否则执行y=pow(x+1,2)+x*2+1/x
- 5.最后输出y
(3)调试问题及解决方法
开头没有运用数学公式,导致结果一直错误。
解决方法:在课本中寻找问题,最后给予添加。
(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 area,perimeter,s;
scanf("%d %d %d",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b){
s=1.0*(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area = %.2f; perimeter = %.2f",area,perimeter);
}
else{
printf("These sides do not correspond to a valid triangle");
}
(2)设计思路
- 1.先判断输入的三条边中任意的两条边是否大于第三条
- 2.如果是就进行有关的面积,周长运算,并输出周长,面积的值
- 3.如果不是就直接输出These sides do not correspond to a valid triangle
(3)调试问题及解决方法
问题:当时在s=1.0*(a+b+c)/2;这一条上不太清楚整形和浮点的问题,没有添加1.0,导致错误;
解决方法:当时没有意识到错误,最后询问同学。
(4)本题PTA提交列表
3.出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
(1).实验代码
int m,x;
double k,y;
scanf("%lf %d",&k,&m);
x=m/5*2;
if(k<=3)
{
y=10+x;
printf("%.0lf",y);
}
else if(k>3&&k<=10)
{
y=10+2*(k-3)+x;
printf("%.0lf",y);
}
else{
y=24+(k-10)*3+x;
printf("%.0lf",y);
(2)设计思路
- 1.依照题意在k<=3时执行y=10+x;并输出y
- 2.在3<k<=10时执行y=10+2*(k-3)+x;;并输出y
- 3.在k>10时执行y=24+(k-10)*3+x;并输出y
(3)调试问题及解决方法
问题:开头的判断全用if,结果不正确
解决方法:进行了多种尝试,最后发现问题。
(4)本题PTA提交列表
4.程序设计联考
自从湖南农业大学、吉首大学和怀化学院组织程序设计课程联考以后,举办联考的经验越来丰富。尤其是在使用PTA系统作为考试平台之后,联考工作得到了很多学校的认可和支持。所以,现在参与联考的学校比较多。为了便于区分考生,考生账号的第一位是学校代号。1代表Hunan Agricultural University,2代表Jishou University,3代表Huaihua University,4代表Aerospace University,5代表Ocean University。 请编写程序根据考生的账号区分考生的学校。
(1).实验代码
int account,x;
scanf("%d",&account);
x=account/100000;
if(x==1){
printf("Hunan Agricultural University");
}
else if(x==2){
printf("Jishou University");
}
else if(x==3){
printf("Huaihua University");
}
else if(x==4){
printf("Aerospace University");
}
else if(x==5){
printf("Ocean University");
}
else{
printf("Other University");
(2)设计思路
1.先用数学运算得出输入代号的首字母
2.运用判断若x1,则输出Hunan Agricultural University;若x2,则输出Jishou University;若b3,则输出Huaihua University;若x4,则输出Aerospace University;若x==5,则输出Ocean University;若x都不等于以上的数,则输出Other University
(3)调试问题及解决方法
本题运用的思路较为直接没有碰到什么问题
二、截图本周题目集的PTA提交列表及最后排名。
三、本周学习总结
1.你学会了什么?
- 1.学会了switch语句的用法
- 2.if-else语句的嵌套,if语句的并列包含关系
- 3.字符型变量的定义和运用
2.本周的内容,你还不会什么?
- 1.if-else与switch语句的灵活运用
- 2.不同的量的转化还有点不清晰
3.你碰到什么困难,打算如何解决?
- .问题:不能掌握编程的技巧,解决问题速度较慢,容易错误
- 解决方法:多去练习,总结,让自己更加熟练
|
请发表评论