我正在尝试编写一个代码,该代码接收质量和体积的三种不同组合,然后将每个值存储到两个不同的数组中:质量和体积。
还需要创建一种方法来计算密度。
但是,当我尝试调用该方法以便使用输入的质量和体积进行计算时,出现错误。
这是错误:
Density.java:19:错误:不兼容的类型:无法转换为double 加倍[] System.out.printf(“%。2f”,calculateDensity(mass [0],volume [0]));
注意:一些消息已经简化;用-Xdiags:verbose
重新编译以获取完整输出
1个错误
这是我的代码:
import java.util.Scanner;
public class Density {
public static void main (String [] args) {
double [] mass = new double[3];
double [] volume = new double[3];
Scanner scan = new Scanner(System.in);
System.out.println("Enter the mass and volume for your three compounds.");
for (int i = 0; i < 3;i++) {
System.out.print("Enter mass in grams: ");
mass[i] = scan.nextDouble();
System.out.print("Enter volume in millimeters: ");
volume[i] = scan.nextDouble();
}
System.out.print("The density for mass = ");
System.out.printf("%.2f", mass[0]);
System.out.print("g and volume = ");
System.out.printf("%.2f", volume[0]);
System.out.print("ml is: ");
System.out.printf("%.2f",calculateDensity(mass[0],volume[0]));
}
public static void calculateDensity (double[] mass, double[] volume) {
double [] density = new double [3];
density[0] = mass[0] / volume[0];
}
}
我很乐意帮助您找出问题所在。我不完全确定如何使用数组定义方法或使用数组的调用方法。 任何帮助表示赞赏。 谢谢!
答案 0 :(得分:1)
calculateDensity需要加倍,因为参数不是double []。 您还需要从密度中返回一个double值,否则您将无法打印出一些东西。
public static double calculateDensity (double mass, double volume){
//your code
return density;
}
答案 1 :(得分:0)
calculateDensity参数是数组(double []),但是您传递了(mass [0],volume [0]),它是原始类型double。
将方法参数更改为:
public static void calculateDensity (double mass, double volume)
答案 2 :(得分:0)
import java.util.Scanner;
public class Density {
public static void main (String [] args) {
double [] mass = new double[3];
double [] volume = new double[3];
Scanner scan = new Scanner(System.in);
System.out.println("Enter the mass and volume for your three compounds.");
for (int i = 0; i < 3;i++) {
System.out.print("Enter mass in grams: ");
mass[i] = scan.nextDouble();
System.out.print("Enter volume in millimeters: ");
volume[i] = scan.nextDouble();
}
System.out.print("The density for mass = ");
System.out.printf("%.2f", mass[0]);
System.out.print("g and volume = ");
System.out.printf("%.2f", volume[0]);
System.out.print("ml is: ");
System.out.printf("%.2f",calculateDensity(mass[0],volume[0]));
}
public static double calculateDensity (double mass, double volume) {
return mass / volume;
}
}
答案 3 :(得分:0)
考虑到您需要打印所有三个输出,而不仅是第一个输出,因此您需要使用与public static void calculateDensity (double[] mass, double[] volume)
完全相同的方法
试试这个:
public static void main(String[] args) {
double [] mass = new double [3];
double [] volume = new double [3];
Scanner s = new Scanner(System.in);
System.out.println("Enter the mass and volume for your 3 compounds.\n");
for (int i = 0; i < 3; i++) {
System.out.print("Enter mass in grams: ");
mass [i] = s.nextDouble();
System.out.println();
System.out.printf("Enter volume in milliliters: ");
volume [i] = s.nextDouble();
System.out.println();
}
s.close();
calculateDensity(mass, volume);
}
public static void calculateDensity(double[] mass, double[] volume) {
System.out.printf("The density for mass = %.2f g and volume = %.2f ml is: %.2f g/ml\n\n", mass[0], volume[0], (mass[0] / volume[0]));
System.out.printf("The density for mass = %.2f g and volume = %.2f ml is: %.2f g/ml\n\n", mass[1], volume[1], (mass[1] / volume[1]));
System.out.printf("The density for mass = %.2f g and volume = %.2f ml is: %.2f g/ml\n\n", mass[2], volume[2], (mass[2] / volume[2]));
}
这可能不是最好的方法,但它按规定工作。