第四次作业

       刚拿到题目的时候我还是挺有信心的,一开始完成的也挺顺利,没有出现错误,但最后运行结果和理想的不一致,反复看了好几遍,还是没能发现到底哪里错了,我又读了几遍题目,发现有一个地方我理解错了,导致运行结果与预期的不符,还是自己审题不清,希望以后可以细心一点。

#include<stdio.h>
int main(void)
{
 int t;
 double m,p1,p2,p;
 printf("Enter t:");
 scanf("%d",&t);
 printf("Enter m:");
 scanf("%lf",&m);
 if(m>0&&m<=3)
  p1=10;
 else if(m>=3&&m<=10)
  p1=10+(m-3)*2;
 else if(m>10)
     p1=10+7*2+(m-10)*3;
 if(t>=5)
 {p2=t/5*2;}
 else if(t<5)
 { p2=0;}
    p=p1+p2;
    printf("p=%.0lf\n",p);
    return 0;
}

       一开始我有点懵,给了三个坐标,我无从下手,但后面想到两点间距离公式,这才有了思路。整个过程还算顺利,但还是有一个问题,就是太粗心了,丢了括号,程序显示错误,改过之后试了一下,能正常运行,而且和预期结果也一样。我感觉经过一次次错误,一次次练习之后,对这门课程还是挺有兴趣的。就希望以后自己还能更加认真!

#include<stdio.h>
#include<math.h>
int main(void)
{
 double x1,y1,x2,y2,x3,y3;
 double a,b,c,s,m;
 double l,area;
 printf("Enter x1,y1,x2,y2,x3,y3:");
 scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
 a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
 b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
 c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
 s=(a+b+c)/2;
 m=(s-a)*(s-b)*(s-c);
 if(a+b>c&&a+c>b&&b+c>a)
 { l=2*s;
  area=sqrt(s*m);
  printf("l=%.2lf,area=%.2f\n",l,area);}
    else
 {printf("Impossible\n");}
 return 0;
}

 

posted @ 2019-04-10 14:55  马艳  阅读(101)  评论(0编辑  收藏  举报