第四周作业
第一部分
一 分段函数
1插入代码
#include<stdio.h>
int main(){
float x;
float y;
scanf("%f",&x);
if(x!=0)
y=1.0/x;
else y=0;
printf("f(%0.1f)=%0.1f",x,y);
return 0;
}
2设计思路
a:观察题可知f中的x与函数中的x为同一变量,需要统一定义并且要用浮点函数定义并保留一位小数
b:构建框架并将提示转化为程序打入其中
c:调试并运行,检查是否出现错误
3流程图
4问题及解决办法
一开始以为f中的x只是一种形式,怎么提交都不对,后来转换一下思路,就正确了
二 A/B
1插入代码
#include<stdio.h>
int main(){
int A,B;
(-100<=A&&A<=100),(-100<=A&&A<=100);
float C;
scanf("%d %d",&A,&B);
C=A/B;
if(B>0)
printf("%d/%d=%0.2f",A,B,C);
if(B<0)
printf("%d/(%d)=(%0.2f)",A,B,C);
else
printf("Error");
return 0;
}
2设计思路
a:构建框架
b:由输出提示可知,需要用浮点函数定义输出变量,并且由于出现多个分支,需要用到else-if或if-if型格式
c:编入程序并调试运行
3流程图
4问题及解决方法
if后面不需要加;仔细检查就解决了问题
三 阶梯
1插入代码
#include<stdio.h>
int main(){
float u,c;
scanf("%f",&u);
if(u<=50&&u>0)
c=u*0.53;
printf("cost=%0.2f",c);
if(u>50)
c=(u-50)*(0.53+0.05)+50*0.53;
printf("cost = %0.2f",c);
if(u<0)
printf("Invalid Value!");
return 0;
}
2设计思路
a:构建框架由题可知该题需要出现多个分支,需要用到else-if,或if-if型函数
b:分类讨论,并按提示编入程序
c:注意用浮点函数定义输出变量
3流程图
4问题及解决方法
我将if-else型函数与if-if型函数弄混了,因此出现这样的错误提示,要么就全用if,要么就用嵌套希望大家不要犯我这种错误
四 出租车
1插入代码
#include <stdio.h>
int main()
{
int m;
float A,C;
scanf("%f %d",&A,&m);
if(A<=3&&m<5)
C=10;
else if(A<=3&&m>=5)
C=10+m/5*2;
else if(A>3&&A<=10&&m<5)
C=(A-3)*2+10;
else if(A>3&&A<=10&&m>=5)
C=(A-3)*2+10+m/5*2;
else if(A>10&&m<5)
C=24+(A-10)*3;
else if(A>10&&m>=5)
C=24+(A-10)*3+m/5*2;
printf("%0.1f",C);
return 0;
}
2设计思路
a:由样例可知,需要同时使用浮点函数定义里程,整形函数定义时间与支付车费
b:分类讨论,根据不同情况打出不同的运算公式
c:用if-if或else-if将不同的公式联系到一起
3框图
4问题及解决办法
由于粗心,我把%0.1f打成了%.0f,经过仔细检查,才发现了问题所在
第二部分
上传截图
git地址:https://git.coding.net/simalang/pta4.git
第三部分:总结
*** int-%d/%i float-%f char-%c
***字符型数据
1char表示英文字母,符号等数据
2用‘’括起单个普通字符及转义字符、
3用“”括起字符序列
注:‘0’与0一个是字符,一个是数字,两者阿斯科码不同
**** else-if可用if-if代替,但两者程序框图不同
*** 处理多个分支可用switch语句
switch(表达式){
case——:语句端1;(break)
...
}
点评链接 1:http://www.cnblogs.com/wangzhiheng/p/7739423.html
2:http://www.cnblogs.com/blueblog6/p/7721746.html
3:http://www.cnblogs.com/Mrtalent/p/7739891.html
表格及折线图