0
我一直在這方面工作很長時間,對於我的生活,我無法弄清楚爲什麼天王星的surfGrav值會被輸出爲這樣數量可觀。基本上,該程序基於行星質量和半徑生成表面引力。這只是天王星的價值;一切都很好。我已經加倍與谷歌的價值檢查,但無濟於事。 此外,這是爲我的計算機科學課程,所以我不能只是修改utput是我想要的,我必須解決我已經有的。 木星的價值應該遠遠低於木星的價值。 感謝您的幫助!一個數組中的單個值沒有用函數正確解析
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
public class GravityV1
{
public static String[] planets = {"Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"};
public static int[] radii = {2439000, 6052000, 6378000, 3397000, 71492000, 60268000, 2559000, 24764000};
public static double[] mass = {3.30E+23, 4.87E+24, 5.98E+24, 6.42E+23, 1.90E+27, 5.69E+26, 8.68E+25, 1.02E+26};
public static double constantGrav = 6.67E-11;
public static double a;
//constructors
private static PrintWriter outFile;
//main method
public static void main (String[] args) throws FileNotFoundException
{
outFile = new PrintWriter(new File("gravity1.txt"));
System.out.println(" Planetary Data ");
System.out.println("Planet Diameter(km) Mass(kg) g (m/s^2) ");
System.out.println("-----------------------------------------------------------------");
for(int i = 0; i < planets.length; i++){
double surfGrav = surfGrav(i);
System.out.printf("%8s%15d%20.2e%16.4f%n", planets[i], (2 *radii[i]), mass[i], surfGrav);
txtGrav(i);
}
outFile.close();
}
//this method requires the planet as input. Then it will output and calculate the surface gravity
public static double surfGrav (int planet)
{
return (constantGrav * mass[planet])/(Math.pow(radii[planet], 2));
}
//print output to text file too
public static void txtGrav (int arrayInput) throws FileNotFoundException
{
a = (surfGrav(arrayInput));
if (arrayInput == 2) {
a = Math.round(a);
}
outFile.printf("%.2f%n", a);
}
}
Output:
g (m/s^2)
3.7001
8.8686
9.8052
3.7108
24.7950
10.4488
884.1073 <--- what
11.0939
我甚至無法開始證明我的數學中這個愚蠢的錯誤。感謝一羣人指出了這一點。我真的需要睡覺... – LordValkyrie 2014-09-26 01:53:02