【发布时间】:2020-04-17 19:27:33
【问题描述】:
import java.util.Scanner;
import java.lang.Math.*;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
public class PlanetGravity {
public static double[] Gravity(double[] mass, double[] diameters){
// for statement
double [] gravity = new double[mass.length];
double G = 6.67e-11;
for (int i = 0; i < mass.length; i++){
gravity[i] = ((G * mass[i]) / Math.sqrt((diameters[i]/2)));
}
return gravity;
}
public static void outPrint(String[] planets, double[] diameters, double[] mass, double[] gravity) {
System.out.println("Planetary Data");
System.out.println("Planet Diameter (km) Mass (kg) Gravity (m/s^2)");
System.out.println("");
for (int i = 0; i < planets.length; i++) {
System.out.printf(planets[i], diameters[i], mass[i], gravity[i]);
}
}
public static void fileWriter(double[] info) throws IOException {
File myFile = new File ("gravity.txt");
PrintWriter outFile = new PrintWriter(myFile);
for (int i = 0; i < info.length; i++) {
outFile.println(info[i]);
}
outFile.close();
}
// instance variables - replace the example below with your own
public static void main(String[] args)throws IOException {
// initialise instance variables
String [] planets = {"Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune"};
double [] diameters = {4880.0, 12103.6, 12756.3, 6794.0, 142984.0, 120536.0, 51118.0, 49532.0};
double [] mass = {3.30e23, 4.869e24, 5.972e24, 6.4219e23, 1.900e27, 5.68e26, 8.683e25, 1.0247e26};
double [] planetGravity = Gravity(mass, diameters);
outPrint(planets, diameters, mass, planetGravity);
fileWriter(planetGravity);
}
}
我认为它是最后一个不能正常工作的静态方法部分,我不确定为什么确切或者它也可能是我直到后来才放弃格式化..但我以前做过并且它工作以前的程序,不知道为什么现在它不起作用
【问题讨论】:
-
您不能只告诉我们它“不起作用”。你需要告诉我们它应该做什么以及它实际上做了什么。
-
正如@JosephSible-ReinstateMonica 上面所说的,请让我们知道您使用此代码实现了什么,以及您希望实现什么。请编辑您的问题,为了进一步/更好的帮助,请格式化您的代码,我认为缩进被破坏了。
-
nvm 它是所有格式和字符串行星都是一个字符串的错误:)))
标签: java arrays static-methods