您的位置:首页 > 其它

第四周作业

2017-10-26 23:50 246 查看
一、

题目7-1 计算分段函数[1]

1、实验代码

int main()
{
float x=0,result=0;
scanf("%f",&x);
if(x==0)result=0;
else result=1.0/x;
printf("f(%.1f) = %.1f",x,result);
return 0;
}

2、(1)设计思路:第一步:判断应用浮点数,定义两个浮点数x,y,其中y= result;

第二步:输入x;

第三步:运用if else型函数,判断x是否等于0,等于0输出y=0.0,;不等于0输出y=1/x。

3、流程图:


4、本题中出现的问题:

(1)问题:1、直接定义“y=f(x)”,没有按照题目所要求的输出按“f(x) = result”的格式输出

2、定义x为浮点数,“scanf”中将应该输入“%f”打成“%d”

(2)解决:1、将”f(x)”改成题目要求的输出格式“f(x) = result”

2、将“%d”改成“%f” (这个错误出现了很多次)

截图:


题目7-2 A除以B

1、实验代码

int main()
{
int A=0,B=0;
float C=0;
scanf("%d %d",&A,&B);
if(-100>A||A>100||-100>B||B>100)printf("the input is error");
else if(0<B){C=(float)A/B;
printf("%d/%d=%.2f",A,B,C);}
else if(B==0)printf("%d/%d=Error",A,B);
else {C=(float)A/B;
printf("%d/(%d)=%.2f",A,B,C);}
return 0;
}

2、(1)设计思路:第一步:判断是浮点数形式,定义两个整数A,B和一个浮点数C;

第二步:输入A,B;

第三步:运用if else型函数,判断A,B的正负,确定浮点数C的值,如果B是正数,则输出“C=A/B”;如果B是负数,则输出"C=A/(B)";如果B为零,则输出的C应为Error。C保留小数点后2位。

3、流程图:


4、本题出现的问题:

(1)问题:else if 后面的“B=0”少打了一个“=”

(2)解决:加上一个“=”

截图:


题目7-6 阶梯电价

1、实验代码

int main()
{
float A,B;
scanf("%f",&A);
if(A<=50&&A>0){
B=A*0.53;
printf("cost = %.2f",B);}
else if(A>50){
B=(A-50)*(0.53+0.05)+50*0.53;
printf("cost = %.2f",B);}
else
printf("Invalid Value!");
return 0;
}

2、(1)设计思路:第一步:判断运用浮点数,定义两个浮点数A,B,A为用电数,B为电费;

第二步:输入A;

第三步:运用if else型函数,判断A的取值范围,如果0<A<=50,输出B=A0.53,如果A>50,输出B=(A-50)(0.53+0.05)+50*0.53,如果A=0,输出Invalid Value!,其中B保留两位小数。

3、流程图:



4、本题出现的问题:

(1)问题:限制A的范围使用的不规范,输出的"cost = %.2f"再DVC++中没有出现问题,提交PTA时出现了错误

(2)解决:将“0<A<=50”改为“A<=50&&A>0”,输出的“cost=%.2f”改为“cost = %.2f”。

截图:



题目7-7 出租车计价

1、实验代码

int main()
{
int C;
float A,B;
scanf("%f %d",&A,&C);
if(A<=3&&C<5)
B=10;
else if(A<=3&&C>=5)
B=10+C/5*2;
else if(A>3&&A<=10&&C<5)
B=(A-3)*2+10;
else if(A>3&&A<=10&&C>=5)
B=(A-3)*2+10+C/5*2;
else if(A>10&&C<5)
B=24+(A-10)*3;
else if(A>10&&C>=5)
B=24+(A-10)*3+C/5*2;
printf("%.0f",B);
return 0;
}

2、(1)设计思路:第一步:主要运用浮点型,定义一个整数C,两个浮点数A,B,A是公里数,C是乘车时间,B是乘车费用;

第二步:输入A,C;

第三步:运用if else型函数,判断乘车公里数A与乘车时间C,分别输出B=10,B=10+C/52,B=(A-3)2+10+C/52,B=24+(A-10)3,B=24+(A-10)3+C/52。

3、流程图:


4、本题出现的问题:

(1)问题:当输入A,B区间在(A>10,C>=5),输出的B是四舍五入的数值,但是不是整数形式。

(2)解决:忘记在输出的B的printf中限制输出的位数,即printf(“%.0f”,B)限制输出的位数

截图:


二、上传成功后coding.net项目截图和git地址,PTA提交列表截图:

https://coding.net/u/c289716425/p/123/git



三、点名评论的同学博客链接

(1)http://www.cnblogs.com/liuzehua123/p/7732027.html

(2)http://www.cnblogs.com/mayuxin/p/7735130.html

(3)http://www.cnblogs.com/hezongyan/p/7726382.html

四、本周所学内容、遇到的问题以及解决方法:

本周学习了define和一些新的符号如:++,--,

遇到的问题:经常忘记输入scanf括号里的&,在表示"x=x"时经常忘记用“==”,结尾的输出浮点数经常忘记限制保留小数位数,

解决办法:需要继续练习编写代码和记住结构

五、学习表格与折线图

学习表格:


折线图:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: