完成PTA中所有题目
<一>
计算分段函数
#include<stdio.h> int main() { float x,result; scanf("%f",&x); result=1/x; if (x||0) printf("f(%.1f) = %1.1f",x,result); else printf("f(0.0) = 0.0"); }
设计思路
第一步:定义浮点型变量x,result。
第二步:在scanf函数内输入x。
第三步:分情况讨论x是否等于0,对result进行赋值。
第四步:输出结果f(x)=result.
流程图:
本题调试过程碰到问题及解决办法: 无
<二>
A除以B
#include<stdio.h> int main() { int a,b; float c; scanf("%d %d",&a,&b); c=(float)a/b; if(b<0) printf("%d/(%d)=%.2f",a,b,c); else if (b>0) printf("%d/%d=%.2f",a,b,c); else printf("%d/%d=Error",a,b,c); }
设计思路
第一步:定义整数型变量a,b,浮点型变量c。
第二步:在scanf函数内输入a,b。
第三步:判断 如果a/b,b为负数,b为0,这两种情况,赋值c。
第四步:b是负数,则要用括号把b括起来输出;b为0,输出Error
。
流程图:
本题调试过程碰到问题及解决办法: 无
<三>
阶梯电价
#include<stdio.h> int main() { float w,a,b; scanf("%f",&w); a=0.53*w; b=26.5+0.58*(w-50); if (w>50) printf("cost = %.2f",b); else if (w>0) printf("cost = %.2f",a); else printf("Invalid Value!"); }
设计思路
第一步:定义浮点型变量w(用户的月用电量),a,b(用户应支付的电费 元)。
第二步:在scanf函数中输入w。
第三步:分情况当w<=0,0<w<=50,w>50,赋值a,b。
第四步:输出a或b。
流程图:
本题调试过程碰到问题及解决办法: 无
<四>
出租车计价
#include<stdio.h> int main() { float g; int t,a,b,c; scanf("%f %d",&g,&t); a=24+3*(g-10); b=10+2*(g-3); c=2*t/5; if(t>5) { if(g<=3) printf("10"); else if(g>10) printf("%d",a+c); else printf("%d",b+c); } else { if(t==5&&g<=3) printf("%d",10+c); else if(g<=3) printf("10"); else if(g>10) printf("%d",a); else printf("%d",b); } }
设计思路
第一步:定义浮点型变量g(行驶里程),t(等待时间),a,b,c。
第二步:在scanf函数中输入g a。
第三步:分情况t>=5,t<5下,g<=3,3<g<=10,g>10,赋值a,b,c。
第四步:输出10或a或b或10+c或b+c或a+c。
流程图:
本题调试过程碰到问题:
本题情况较多,没有考虑全面,做了很多次都是部分正确。
解决办法:
用if语句的嵌套,讨论 if(t>5)或if(t<=5)g的各种情况。
Git地址:https://coding.net/FENGZX/PTA.git
总结:本周还是练习了if语句,pta的题难度又加深了,代码行数变多,出现一个错误,比如没有加;都要看好久,所以在今后的学习中要养成良好的编程习惯,step by step!
点评:http://www.cnblogs.com/exo123/p/7737213.html
http://www.cnblogs.com/dx2017/p/7726120.html
http://www.cnblogs.com/lixiaojing/p/7711650.html
图表: