第二次作业

作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292 

第三次作业:7-5.计算分段函数[2] 

#include <stdio.h>
#include <math.h>
int main(void)
{
  double x=0,y=0;
  scanf("%lf",&x);
  if(x>=0){
        y=pow(x,0.5);
    }
  else{
        y=pow(x+1,2)+2*x+1/x;
    }
     printf("f(%.2lf) = %.2lf",x,y);
     return 0;
}

解题思路:1.定义两个双浮点型变量x , y;

     2.输入任一值 x;

     3.如果输入的值 x 大于或等于0,则用y=x^(1/2)计算y的值,最后直接输出y值;

     4.否则跳过if计算式,用y=(x+1)^2+2*x+1/x计算并输出y的值;

流程图:              

                            

 运行结果:

 

      

      

                刚开始程序运行一直出现答案错误,在DEVC++中试验发现结果与案例不同,小数点后的数过多,接下来,我进行了调试,输入案例中的数字10:

因为x=10>0,所以调到if句,再按回车,直接调到输出结果,结果出现:

与案例中的结果不一样,案例中是f(10.00)=3.16,而我的是f(10)=3,于是我意识到题中的要求,要保留两位小数,所以:

所以主要原因是输出双浮点应该是%.2f,而不是%.lf。以后要注意审题和输出写法。

第四次作业 7-2 高速公路超速处罚

 

#include <stdio.h>
#include <math.h>
int main(void)
{
  double x,y;
  double a;
  scanf("%lf %lf",&y,&x);
   a=(y-x)*100/x;
  if(a<10||y<x){
    printf("OK\n");
  }
  else if(a>=50){
    printf("Exceed %.0f%%. License Revoked\n",a);
  }
   else {
     printf("Exceed %.0f%%. Ticket 200\n",a);
   }
  
  return 0;
}

 

解题思路:1.定义三个双浮点型变量 x, y, a;

     2.输出两个x ,y的变量值;

     3.用x,y的式子计算a;

     4.如果a<10或y<x,则输出"ok";

     5.如果a>=50,则输出Exceed  x%. License Revoked;

     6.否则输出Exceed x%. Ticket 200;

流程图:

运行结果:

 

提交发现只有第一个案例输出正确,接下来进行调试:输入案例1中的65,60;

 

这项没问题,输入案例2中的110,100;

发现输出结果与案例中不一致,接下来输入案例3中的200,120;

发现这个也与案例3答案不一致,之后我通过询问同学得知在输出中“f”后需输入两个“%”号,因为一个百分号是代表百分之几,另一个是输出数据必须要带的;结果:

 

所以以后要记住相同%号的不同用处。

本周总结:本周老师主要讲了条件switch语句,通过pta上的练习和课本上的联系发现了问题和获得了一些收获,通过老师的讲解和课本的详述了解并知道运行调试。

问题:1.发现一直出现输出上的错误,小数点后留多少位。

   2.审题不清

           3.不会想到转换,用几个未知数转化为一个,这样作为if句的条件

博客字数,代码行数:

 

作业点评:www.cnblogs.com/mayijing/p/9905748.html

       www.cnblogs.com/zst1/p/9912320.html

       www.cnblogs.com/cyw1/p/9905822.html

posted @ 2018-11-06 23:43  计科18-2谭婉霞  阅读(267)  评论(9编辑  收藏  举报