一、PTA实验作业 题目一:7-1 计算分段函数
1.实验代码
double x,y;scanf("%lf", &x);if(x >= 0){y=pow(x,0.5);}else{y=pow(x+1,2)+2*x+1/x;}printf("f(%.2lf) = %.2lf",x,y);
}
2.设计思路
- 1.定义浮点型变量X,Y;
- 2.输入X的值;
- 3.如果X大于等于0,Y等于X的0.5次方;
- 4.否则y=pow(x+1,2)+2*x+1/x;
5.保留两位小数,输出X和Y的值;
3.本题调试过程碰到问题及解决办法:
- 1.在使用数学函数时没有加入函数声明#include
,后来自己发现错误并解决; - 2.X与运算符之间应该空格,否则显示格式错误,如x >= 0;
3.发现保留两位小数既可以表示成 %.2lf,也可以表示成%.2f;
4.本题PTA提交列表:
题目二:7-4 输出三角形面积和周长
本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√
s(s−a)(s−b)(s−c)
,其中s=(a+b+c)/2。
1.实验代码
int a,b,c;double s,area,perimeter;scanf("%d %d %d",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){s=(a+b+c)*1.0/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.定义整型变量a,b,c,浮点型变量 s,area,perimeter;
- 2.输入 a,b,c;
- 3.如果满足任意两条边大于第三边,则s=(a+b+c)1.0/2;
area=sqrt(s(s-a)(s-b)(s-c));
perimeter=a+b+c,输出area,perimeter的值; 4.否则输出These sides do not correspond to a valid triangle;
3.本题调试过程碰到问题及解决办法:
- 1.输出格式中,%.2f;和 perimeter之间要空格,解决办法是以后可以直接把输出格式复制黏贴;
- 2.&符号用在scanf中,不用在printf中,以后要多注意;
- 3.假如else后面无公式,则不用加{},开始时加了{},后来在同学的帮助下改正;
- 4.变量名取得不好,无法见名知义,借鉴同学的,可取名为side1,side2,side3;
- 5.最后一句输出语句中闹了一个大笑话,These sides do not correspond to a valid triangle中少了一个a,解决办法是复制黏贴或者以后细心一点,嘻嘻;
6.让整型变量相除成为实型变量的办法是让被除数*1.0,这是同学给的建议;
4.本题PTA提交列表:
题目三:7-6 出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
1.实验代码
6.输出price的值&#xff0c;四舍五入为整数&#xff1b; 4.这道题有两种思路&#xff0c;一种是把每一段路程的计价都加上等待时间的计价&#xff0c;另一种是先计算等待时间的计价&#xff0c;最后再加起来&#xff1b; 5.若都不满足&#xff0c;则进入default语句&#xff1b; 3.switch后面的括号里只能有一个变量&#xff0c;不能是表达式&#xff0c;例如account/100000&#xff0c;所以要另设一个变量number&#xff1b; int t;double price,s;scanf("%lf%d",&s,&t);if(s<&#61;3){price&#61;10&#43;t/5*2;}else if(3
2.设计思路
(s-3)&#43;t/52&#xff1b;3.本题调试过程碰到问题及解决办法&#xff1a;
4.本题PTA提交列表&#xff1a;
题目四&#xff1a;7-8 程序设计联考
自从湖南农业大学、吉首大学和怀化学院组织程序设计课程联考以后&#xff0c;举办联考的经验越来丰富。尤其是在使用PTA系统作为考试平台之后&#xff0c;联考工作得到了很多学校的认可和支持。所以&#xff0c;现在参与联考的学校比较多。为了便于区分考生&#xff0c;考生账号的第一位是学校代号。1代表Hunan Agricultural University&#xff0c;2代表Jishou University&#xff0c;3代表Huaihua University&#xff0c;4代表Aerospace University&#xff0c;5代表Ocean University。 请编写程序根据考生的账号区分考生的学校。
1.实验代码
int account,number;scanf("%d",&account);number&#61;account/100000;switch (number){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;}
2.设计思路
3.本题调试过程碰到问题及解决办法&#xff1a;
4..本题PTA提交列表&#xff1a;
二、截图本周题目集的PTA最后排名。
三、本周学习总结
1.你学会了什么&#xff1f;
2.本周的内容&#xff0c;你还不会什么&#xff1f;
3.你碰到什么困难&#xff0c;打算如何解决&#xff1f;