为了账号安全,请及时绑定邮箱和手机立即绑定

想求coor中的每个点到sta中的三个点的距离并在result中输出?该怎么做?

想求coor中的每个点到sta中的三个点的距离并在result中输出?该怎么做?

眼眸繁星 2022-12-14 16:12:03
coor[][]是三个点的经纬度和高程前两列分别是经度和纬度,可是在 result[o][p]=Math.sqrt(Math.pow(coor[i][0]-sta[m][1],2)+Math.pow(coor[i][1]-sta[m][2],2));行出现了标题中的问题,请问应该怎么改。我是java初学者,希望大家能帮帮忙。import java.io.*;public class Dis5{public static void main(String args[]){try{double [][] coor= new double[3][3];double [][] result= new double[3][3];int [] ori=new int[9];int i=0,j;int m=0,n;int o,p;double [][] sta={{1,363855.75,4039483.23},{2,363314.52,4039455.38},{3,364354.27,4039395.10}};for(o=0;o<=2;o=o+1){  for(p=0;p<=2;p=p+1){  result[o][p]=Math.sqrt(Math.pow(coor[i][0]-sta[m][1],2)+Math.pow(coor[i][1]-sta[m][2],2));System.out.println(result[o][0]+"\t"+result[o][1]+"\t"+result[o][2]);}m=m+1;}i=i+1;fr.close();fw.close();}catch (Exception e){System.out.println("出现错误");e.printStackTrace();}}}
查看完整描述

3 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

数组下表越界
for(o=0;o<=2;o=o+1){  
for(p=0;p<=2;p=p+1){  
改成
for(o=0;o<2;o=o+1){  
for(p=0;p<2;p=p+1){  
最好 p++

查看完整回答
反对 回复 2022-12-18
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

看错误就是数组越界
但是你代码贴出来的部分是没什么问题的.. 只是fr和fw这两个变量根本没定义

查看完整回答
反对 回复 2022-12-18
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

java数组越界,抛出异常,用array.length来限制就行

查看完整回答
反对 回复 2022-12-18
  • 3 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信