第四周作业
7-1:
#include <stdio.h> int main() { float x; float y; scanf("%f",&x); if (x!=0) y=1/x; else y=0; printf("f(%.1f) = %.1f",x,y); return 0; }
第一步打好框架
第二步按题目要求依次编写程序 输入x输出f(x)=y
流程图:
错误:
错误:输出时定义错误,应将%.1f定义成x即可,当时没理解赋值的意义,后修改多遍发现这样正确
7-2
#include<stdio.h> 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; }
第一步:打好框架
第二步:按题目要求分类,再从符合题目要求的范围中进行分类讨论
第三步 :列举不同情况
流程图:
错误:
错误原因:第十行后没加分号,经错误提示后解决
d7-6
#include <stdio.h> int main() { int a; float b; scanf("%d",&a); if (a<0) printf("Invalid Value!"); else if(a<=50) {b=a*0.53; printf("cost = %.2f",b);} else {b=50*0.53+(a-50)*0.58; printf("cost = %.2f",b);} return 0; }
第一步:打好框架
第二步:分类讨论不同情况,用数学思想解决问题
流程图:
错误;
错误原因:最后一步多加个if。改正:else if后给加条件,而最后一步若写成else则不需加条件
7-7
#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; }
第一步:打好框架
第二步:注意多种情况分类讨论,输入AC
第三步:讨论方式较多,分类后输出B即可
错误:
此题细心讨论各种情况即可,经历前六道题的坎坷,并没有遇到语句上的问题。
https://coding.net/u/asdfg145632/p/a4/git
本周学习if,else语句,了解并运用了多种语句的作用,使思维更加活跃,灵活,与数学结合起来,使打代码更有趣味性
遇到问题:主要还是细节方面的问题,else及else if认识不深刻,打代码还不够熟练,发现并解决问题的能力也有待加强
解决办法:经错误提示仔细检查,发现并解决了问题,目前仍需努力练习。
图:
链接;http://www.cnblogs.com/gzk08-20/p/7709327.html