实验四:三角形判断

       本次实验问题稍多,出租车计价一题逻辑比较简单,就是情况比较多,在多次尝试后才让程序成功运行。而三角形的判断一题中主要出现了以下几点错误  1.else 和 if 语句不搭配   2.对三角形成立的条件理解不正确(是任意两边之和大于第三边,而不是大于等于第三边)。查阅了课本后进行了修改,却发现依旧有一个错误,有一个括号变成了中文状态下的形式,将其改正后,实现了最终的编程。通过此次实验发现,在设计开始前,一定要形成流程图,它可以使设计有一定的逻辑性与严密性,使得思路明确。

以下是程序:

(1)出租车计价

#include<stdio.h>
int main(void)
{
double m,n,s;
int t;
printf("Enter m:");
scanf("%lf",&m);
printf("Enter t:");
scanf("%d",&t);
if(m<=3){
n=10;
}

(2)三角形判断

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


else
if(m>3 && m<=10){
n=10+2*(m-3);
}
else {
n=24+3*(m-10);
}
if(t%5==0){
s=n+2*t/5;
}
else{
s=n+(t-t%5)*2/5;
}
printf("s=%.lf\n",s);
return 0;
}

猜你喜欢

转载自www.cnblogs.com/cyj815/p/10684401.html
今日推荐