第四次作业
2017-10-27 19:43 魏鹏5班 阅读(341) 评论(8) 编辑 收藏 举报题目7-1,计算分段函数
1,实验代码
#include <stdio.h>
int main(){
double x,result;
scanf("%lf",&x);
if(x!=0)
result = 1/x;
else
result = 0;
printf("f(%.1f) = %.1f\n",x,result);
return 0;
}
2,设计思路
<1>第一步
第二步:明确double型需要在scanf中定义%lf,再用到if else的基本语句。
第三步:编译运行,符合题目要求。
<2>流程图:
3,本题调试过程中遇到的问题及解决方法
错误截图:
不知道double型是需要用%lf来定义的,在这个题目上也浪费了许多时间去找错误,才发现是把l打成了1,感觉这不应该是能力问题,上课有提到过,没注意听,导致了这次的失误,在同学的帮助下才改正过来。
题目7-2,A除以B
1,实验代码
#include <stdio.h>
int main(){
int a,b;
double c;
scanf("%d %d",&a,&b);
c = (double)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/0=Error",a);
return 0;
}
2,设计思路
<1>第一步:写出基本框架。
第二步:定义两个变量,注意保留两位小数是%.2f,运用有多种选择的if else的写法,在printf中按题目要求计算式子的形式。
第三步:编译运行,看是否有要求的/,没有就继续添加,完成该题。
<2>流程图
3,本题调试过程中遇到的问题及解决方法
错误截图:
还是浮点型的问题,直到这里才弄明白,double定义双精度,比float更为准确。
题目7-6
1,实验代码
#include<stdio.h>
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去乘题目要求的0.53,然后使用if else编译语句,写出50后每千瓦的电费,用超出的部分加上固定的部分,再用else结尾写出另一个条件。
第三步:编译运行,符合题意。
<2>流程图:
3,本题调试过程中遇到的问题和解决方法。
本题在这次作业中应该是最简单的一道,没有出现什么问题,但我发现一个有趣的现象。当小数点最后一个数字为0的时候,无论是用double还是float去定义数的精确度,在后面%.2f不变的条件下,输入的结果都是对的。我不知道这算不算一种巧合,我希望老师在看到后可以给予我改正,在这里先谢谢老师了。
两次的截图:
题目7-7出租车计价
1,实验代码
#include<stdio.h>
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>第一步:写出基本思路
第二步:此题是比较麻烦的一题,有很多种情况,需要先定义一个基本的分钟数,为整数,因为是在五分钟以下统一标准,故可以以五为分界点来讨论,不要去定义float类型的小数。
第三步:里程必须用float去定义,额外的B就是用来计算费用,一共有六种情况。
1,里程<=3,停车时间<=5。
2,里程<=3,停车时间>5。
3,3<里程<=10,停车时间<=5。
4,3<里程<=10,停车时间>5。
5,里程>10,停车时间<=5。
6,里程>10,停车时间>5。
第四步:编译运行,符合题意。
<2>流程图:
3,本题调试过程中遇到的问题和解决方法。
错误截图:
这题主要是四舍五入的问题没有注意,在结尾的printf运用了%d,导致了输出的结果全是0。经过这次的教训,知道了%.0f是四舍五入的意思。
要求三:上传git截图和地址
截图:
地址:
https://git.coding.net/WP2017024114/test.git
4,总结学习内容
1,本周学到了浮点型数据有单精度浮点型(float)和双精度浮点型(double),基本上学会了if else在现阶段的掌握,但是对于switch的语句还是不理解,对于语句断n+1;后加break的方式不知道怎么操作,希望老师可以给予我一些指点。
2,对于符号常量写#define PRICE 数值 ,在结尾不加return 0;的这种结构,写出来编译运行后,我不知道可不可以自己输入数据,以下附上截图。
截图中的300是自己弹出来的,我想问一下我可以不可在代码中改变什么东西,可以我自己输入一个数据,然后出结果。
折线图和表格
点评三个同学的博客
第一位陈盈驰:http://www.cnblogs.com/1999-cyc/p/7735327.html
第二位汪志恒:http://www.cnblogs.com/wangzhiheng/p/7739423.html
第三位舒鹏:http://www.cnblogs.com/shupeng521/p/7732034.html