您的位置:首页 > 其它

矩形面积交_基础练习_蓝桥杯

2018-02-08 11:59 267 查看
思路:
知识点:
import java.util.Scanner;
public class Main {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double[] a = new double[4]; //记录第一个矩形的坐标a[0] a[1]为第一个点,a[2]a[3]为第二个点
double[] b = new double[4]; //记录第二个矩形的坐标b[0] b[1]为第一个点,b[2]b[3]为第二个点
for(int i = 0;i<4;i++) //初始化点
a[i] = in.nextDouble();
for(int i = 0;i<4;i++)
b[i] = in.nextDouble();
in.close();

//利用三目运算符判断两个矩形是否相交
if(((a[2]>a[0]?a[2]:a[0])<(b[0]<b[2]?b[0]:b[2])||(b[2]>b[0]?b[2]:b[0])<(a[0]<a[2]?a[0]:a[2]))||((a[3]>a[1]?a[3]:a[1])<(b[1]<b[3]?b[1]:b[3])||(b[3]>b[1]?b[3]:b[1])<(a[1]<a[3]?a[1]:a[3]))) {
System.out.println("0.00"); //不相交输出
}else {
//相交
double[] xp = {a[0],a[2],b[0],b[2]}; //保存输入的点的x坐标
double[] yp = {a[1],a[3],b[1],b[3]}; //保存输入的点的y坐标
paixu(xp,4); //保存的x,y坐标进行排序
paixu(yp,4);
double d = (xp[2]-xp[1])*(yp[2] - yp[1]); //取排在中间的两个坐标数值进行相乘
String s = String.format("%.2f", d); //转为字符串格式化输出
System.out.println(s);
}

}

public static void paixu(double[] a, int n) { //排序算法
double temp;
for(int i = 1;i<n;i++) {
for(int j = i; j>0; j--){
if(a[j]<a[j-1]) {
temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: