C语言程序设计(第三版)何钦铭著 习题3-5

C语言程序设计(第三版)何钦铭著 习题3-5

习题一览表
1. C语言程序设计(第三版)何钦铭著 习题2-1
2.C语言程序设计(第三版)何钦铭著 习题2-2
3.C语言程序设计(第三版)何钦铭著 习题2-3
4.C语言程序设计(第三版)何钦铭著 习题2-4
5.C语言程序设计(第三版)何钦铭著 习题2-5
6.C语言程序设计(第三版)何钦铭著 习题2-6
7.C语言程序设计(第三版)何钦铭著 习题3-1
8.C语言程序设计(第三版)何钦铭著 习题3-2
9.C语言程序设计(第三版)何钦铭著 习题3-3
10.C语言程序设计(第三版)何钦铭著 习题3-4


题目

三角形判断∶输入平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。
如果这3个点能构成一个三角形,输出周长和面积(保留2位小数);
否则,输出"Impossble"。试编写相应程序。
提示∶在一个三角形中,任意两边之和大于第三边。三角形面积计算公式如下∶
area=在这里插入图片描述
其中s=(a+b+c)/2


分析过程

输入

条件:输入平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3)

输出

条件:如果这3个点能构成一个三角形,输出周长和面积(保留2位小数);否则,输出"Impossble"

代码

#include <stdio.h>
#include <math.h>

int main () {
    
    
	/*定义变量*/
	double x1, y1, x2, y2, x3, y3;                                          /*定义变量,存储输入的三个点的坐标(x1,y1)、(x2,y2)、(x3,y3)*/
	double a, b, c, s, perimeter, area;                                     /*定义变量,计算结果边长a, b, c, s 以及周长和面积*/
	/*赋值*/
	printf("请输入三个点的坐标(x1,y1)、(x2,y2)、(x3,y3):\n");     	/*输入提示*/
	scanf("%lf %lf %lf %lf %lf %lf \n", &x1, &y1, &x2, &y2, &x3, &y3);      /*输入并赋给变量*/
    /*计算*/
    a = sqrt((pow(fabs(x1-x2), 2) + pow(fabs(y1-y2), 2)));                  /*计算结果边长a*/
    b = sqrt((pow(fabs(x2-x3), 2) + pow(fabs(y2-y3), 2)));                  /*计算结果边长b*/
    c = sqrt((pow(fabs(x1-x3), 2) + pow(fabs(y1-y3), 2)));                  /*计算结果边长c*/
	if(a+b>c && a+c>b && b+c>a) {
    
                                               /*符合任意两边之和大于第三边,则可构成三角形*/
        s = (a+b+c)/2;
        perimeter = a+b+c;
	    area = sqrt(s*(s-a)*(s-b)*(s-c));
        printf("周长 = %0.2lf, 面积 = %0.2lf", perimeter, area);
	} else 
	    printf("Impossble");                                                /*不能构成三角形*/
	
	return 0;
}

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43228814/article/details/112282020