在下面的代码中,您会注意到第30行和第37行这两行代码
fahrenheit = (9.0/5)*(cel+32);
celsius = (5.0/9)*(fahren-32);.
这些代码给了我错误"the operator - (or) + is undefined for the argument type(s) double[], int"
我只是在学习Java而这个问题是我必须为学校做的一个问题。我必须有两个方法(列出的方法),并且必须使用已构建的数组创建一个表。但是我不能再往前走,因为我一直在犯这个错误。我的方法有问题吗?我将数组传递给方法错了吗?我不知道我写方法的方式是否正确。所以我也希望有人能告诉我这样做的正确方法。
public class CelciusFahrenheit {
public static void main(String [] args){
// creates array cel and fills it.
double[] cel = {
40, 39, 38,
37, 36, 35,
34, 33, 32, 31
};
// creates array fahren
double[] fahren = new double[90];
// fills array fahren
for (int i = 30; i < fahren.length; i++)
fahren[i] = i + 1;
// passes fahren to method
FahrenheitToCelsius(fahren);
// passes cel to method
CelsiusToFahrenheit(cel);
}
// Method CelsiusToFahrenheit start
public static double CelsiusToFahrenheit(double[] cel){
double fahrenheit;
fahrenheit = (9.0/5)*(cel+32);
return fahrenheit;
// Method CelsiusToFahrenheit end
}
// Method FahrenheitToCelsius start
public static double FahrenheitToCelsius(double[] fahren){
double celsius;
celsius = (5.0/9)*(fahren-32);
return celsius;
// Method FahrenheitToCelsius end
}
}
答案 0 :(得分:3)
fahrenheit
是double
的数组,而不是double
。你不能从中减去一个数字。与cel
相同的问题:它是double
的数组,您无法为其添加数字。也许您打算在数组中添加或减去元素?不是数组本身。或者更有可能:您希望传递double
作为参数,而不是double[]
。
让我们一步一步走。首先,修复这些方法:
public static double CelsiusToFahrenheit(double cel) {
double fahrenheit;
fahrenheit = (9.0/5)*(cel+32);
return fahrenheit;
}
public static double FahrenheitToCelsius(double fahren) {
double celsius;
celsius = (5.0/9)*(fahren-32);
return celsius;
}
现在您可以在输入数组中的每个元素上调用它们:
for (int i = 0; i < fahren.length; i++)
System.out.print(FahrenheitToCelsius(fahren[i]) + " ");
System.out.println();
for (int i = 0; i < cel.length; i++)
System.out.print(CelsiusToFahrenheit(cel[i]) + " ");
答案 1 :(得分:0)
让我们来看看这个方法......
public static double CelsiusToFahrenheit(double cel){ //These parameters.. nono
double fahrenheit;
fahrenheit = (9.0/5)*(cel+32); //Use all doubles (9.0/5.0)*(cel+32.0);
return fahrenheit;
// Method CelsiusToFahrenheit end <-- this makes no sense, read method name
}
你接受了array
的cel而不仅仅是cel。将参数更改为double cel
。这同样适用于您的其他方法。