题目1.计算分段函数
本题目要求计算下列分段函数f(x)的值
1.代码
double x, result;
scanf("%lf", &x);
if (x >=0)
result = sqrt(x);
else
result = 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)多去网上查阅相关的知识,找出大致相同的算法来对比,找出错误。
|
请发表评论