编程题:点线形系列3-三角形的计算
用户输入一组选项和数据,进行与三角形有关的计算。选项包括:
1:输入三个点坐标,判断是否是等腰三角形、等边三角形,判断结果输出true/false,两个结果之间以一个英文空格符分隔。
2:输入三个点坐标,输出周长、面积、重心坐标,三个参数之间以一个英文空格分隔,坐标之间以英文","分隔。
3:输入三个点坐标,输出是钝角、直角还是锐角三角形,依次输出三个判断结果(true/false),以一个英文空格分隔,
4:输入五个点坐标,输出前两个点所在的直线与三个点所构成的三角形相交的交点数量,如果交点有两个,则按面积大小依次输出三角形被直线分割成两部分的面积。若直线与三角形一条线重合,输出"The point is on the edge of the triangle"
5:输入四个点坐标,输出第一个是否在后三个点所构成的三角形的内部(输出in the triangle/outof triangle)。
必须使用射线法,原理:由第一个点往任一方向做一射线,射线与三角形的边的交点(不含点本身)数量如果为1,则在三角形内部。如果交点有两个或0个,则在三角形之外。若点在三角形的某条边上,输出"on the triangle"
### 输入格式:
基本格式:选项+":"+坐标x+","+坐标y+" "+坐标x+","+坐标y。点的x、y坐标之间以英文","分隔,点与点之间以一个英文空格分隔。
### 输出格式:
基本输出格式见每种选项的描述。
异常情况输出:
如果不符合基本格式,输出"Wrong Format"。
如果符合基本格式,但输入点的数量不符合要求,输出"wrong number of points"。
如果输入的三个点无法构成三角形,输出"data error"。
注意:输出的数据若小数点后超过6位,只保留小数点后6位,多余部分采用四舍五入规则进到最低位。小数点后若不足6位,按原始位数显示,不必补齐。例如:1/3的结果按格式输出为 0.333333,1.0按格式输出为1.0
选项4中所输入线的两个点坐标重合,输出"points coincide",
### 输入样例1:
选项4,定义线的两点重合。例如:
in
4:1,0 1,0 0,0 2,0 4,0
### 输出样例:
在这里给出相应的输出。例如:
out
points coincide
### 输入样例2:
选项4,构成三角形的三个点在一条线上,无法构成三角形。例如:
in
4:1,0 0,2 0,0 0,0 4,0
### 输出样例:
在这里给出相应的输出。例如:
out
data error
### 输入样例3:
选项1,判断等腰、等边三角形。例如:
in
1:-2,0 2,0 0,4
### 输出样例:
两个判断结果。例如:
out
true false
### 输入样例4:
选项2,输出边长、面积、重心坐标。例如:
in
2:0,0 3,0 0,1
### 输出样例:
在这里给出相应的输出。例如:
out
7.162278 1.5 1.0,0.333333
### 输入样例5:
选项3,钝角、直角、锐角的判断。例如:
in
3:0,1 1,0 2,0
### 输出样例:
在这里给出相应的输出。例如:
out
true false false
### 输入样例6:
选项4,直线与三角形交点的数量等于2,输出数量值以及三角形被分割的两部分面积。例如:
in
4:1,0 0,2 0,0 0,2 4,0
### 输出样例:
在这里给出相应的输出。例如:
out
2 1.0 3.0
### 输入样例7:
选项4,直线与三角形交点的数量少于两个,只输出数量值。例如:
in
4:-1,0 1,2 0,1 0,-1 2,0
### 输出样例:
在这里给出相应的输出。例如:
out
1
### 输入样例8:
选项5,用射线法判断点是否在三角形内部。例如:
in
5:0.5,0.5 0,0 0,2 4,0
### 输出样例:
在这里给出相应的输出,交点坐标之间以英文","分隔,判断结果与坐标之间以一个英文空格分隔。例如:
out
in the triangle
### 输入样例9:
选项5,用射线法判断点是否在三角形内部。例如:
in
5:0,0 -1,-1 2,3 3,4
### 输出样例:
在这里给出相应的输出。例如:
out
outof the triangle
答案:若无答案欢迎评论
1:输入三个点坐标,判断是否是等腰三角形、等边三角形,判断结果输出true/false,两个结果之间以一个英文空格符分隔。
2:输入三个点坐标,输出周长、面积、重心坐标,三个参数之间以一个英文空格分隔,坐标之间以英文","分隔。
3:输入三个点坐标,输出是钝角、直角还是锐角三角形,依次输出三个判断结果(true/false),以一个英文空格分隔,
4:输入五个点坐标,输出前两个点所在的直线与三个点所构成的三角形相交的交点数量,如果交点有两个,则按面积大小依次输出三角形被直线分割成两部分的面积。若直线与三角形一条线重合,输出"The point is on the edge of the triangle"
5:输入四个点坐标,输出第一个是否在后三个点所构成的三角形的内部(输出in the triangle/outof triangle)。
必须使用射线法,原理:由第一个点往任一方向做一射线,射线与三角形的边的交点(不含点本身)数量如果为1,则在三角形内部。如果交点有两个或0个,则在三角形之外。若点在三角形的某条边上,输出"on the triangle"
### 输入格式:
基本格式:选项+":"+坐标x+","+坐标y+" "+坐标x+","+坐标y。点的x、y坐标之间以英文","分隔,点与点之间以一个英文空格分隔。
### 输出格式:
基本输出格式见每种选项的描述。
异常情况输出:
如果不符合基本格式,输出"Wrong Format"。
如果符合基本格式,但输入点的数量不符合要求,输出"wrong number of points"。
如果输入的三个点无法构成三角形,输出"data error"。
注意:输出的数据若小数点后超过6位,只保留小数点后6位,多余部分采用四舍五入规则进到最低位。小数点后若不足6位,按原始位数显示,不必补齐。例如:1/3的结果按格式输出为 0.333333,1.0按格式输出为1.0
选项4中所输入线的两个点坐标重合,输出"points coincide",
### 输入样例1:
选项4,定义线的两点重合。例如:
in
4:1,0 1,0 0,0 2,0 4,0
### 输出样例:
在这里给出相应的输出。例如:
out
points coincide
### 输入样例2:
选项4,构成三角形的三个点在一条线上,无法构成三角形。例如:
in
4:1,0 0,2 0,0 0,0 4,0
### 输出样例:
在这里给出相应的输出。例如:
out
data error
### 输入样例3:
选项1,判断等腰、等边三角形。例如:
in
1:-2,0 2,0 0,4
### 输出样例:
两个判断结果。例如:
out
true false
### 输入样例4:
选项2,输出边长、面积、重心坐标。例如:
in
2:0,0 3,0 0,1
### 输出样例:
在这里给出相应的输出。例如:
out
7.162278 1.5 1.0,0.333333
### 输入样例5:
选项3,钝角、直角、锐角的判断。例如:
in
3:0,1 1,0 2,0
### 输出样例:
在这里给出相应的输出。例如:
out
true false false
### 输入样例6:
选项4,直线与三角形交点的数量等于2,输出数量值以及三角形被分割的两部分面积。例如:
in
4:1,0 0,2 0,0 0,2 4,0
### 输出样例:
在这里给出相应的输出。例如:
out
2 1.0 3.0
### 输入样例7:
选项4,直线与三角形交点的数量少于两个,只输出数量值。例如:
in
4:-1,0 1,2 0,1 0,-1 2,0
### 输出样例:
在这里给出相应的输出。例如:
out
1
### 输入样例8:
选项5,用射线法判断点是否在三角形内部。例如:
in
5:0.5,0.5 0,0 0,2 4,0
### 输出样例:
在这里给出相应的输出,交点坐标之间以英文","分隔,判断结果与坐标之间以一个英文空格分隔。例如:
out
in the triangle
### 输入样例9:
选项5,用射线法判断点是否在三角形内部。例如:
in
5:0,0 -1,-1 2,3 3,4
### 输出样例:
在这里给出相应的输出。例如:
out
outof the triangle
答案:若无答案欢迎评论