编写一个名为createDoubles的方法,该方法构建一个浮点值数组,表示从10.0到13.0的数字的平方,步长为0.5,包括两个边界。该方法没有参数,并返回一个双精度数组。这个数组中只有7个数字。 我一直在尝试坚果什么都没有用。谢谢!
public static double[] createDoubles(){
double[] dArray= new double[7];
double[] squareArray= new double[dArray.length];
for(int i= 0; i< dArray.length-1; i+=0.5){
squareArray[i]= dArray[i]* dArray[i];
}
return squareArray;
}
答案 0 :(得分:1)
如果用0.5递增i,你如何期望数组索引在循环中工作?请你仔细检查一下代码。
答案 1 :(得分:1)
这样的东西会起作用。想法是数组索引以1为步长递增而不是0.5,因为您的循环期望。
public static double[] createDoubles(){
double[] dArray= {10.0,10.5,11.0,11.5,12.0,12.5,13.0};
double[] squareArray= new double[dArray.length];
for(int i= 0; i< dArray.length; i++){
squareArray[i]= dArray[i]* dArray[i];
}
for(double f: squareArray)
System.out.println(f);
return squareArray;
}
答案 2 :(得分:1)
尝试以下方式:
public static double[] createDoubles(){
double[] squareArray= new double[7];
double number = 10.0;
int i=0;
while(number <= 13.0) {
squareArray[i] = number*number;
number = number + 0.5;
i++;
}
}
return squareArray;
答案 3 :(得分:0)
您可以看到以下演示:
int i = 0;
i = i + 0.5;
我永远是0。 这意味着你调用它时你的方法不会停止。
答案 4 :(得分:0)
这是一种方法,但可能不是老师想要的:
public static double[] createDoubles() {
double[] answer = {10.0, 10.5, 11.0, 11.5, 12.0, 12.5, 13.0 );
// Actually, the above values should be 100,m ... 169.
// but I'm too laze to do the math
return answer;
}
请注意,将循环索引增加非整数值绝不是一个好主意。如果你尝试增加0.1而不是0.5的方法,你可能会感到惊讶。
答案 5 :(得分:0)
此代码未运行但不起作用的原因是因为java将i+=0.5
向下舍入到i+=0
,这导致i
保持相等为0,你的循环永远不会退出,你的代码根本不做任何事情。要修复代码的这一部分,请将i+=0.5
更改为i+=1
。但是,由于您没有在方形数组中声明任何内容,因此返回的结果数组只是0。修复此问题,方法是在d数组中定义所需的内容,然后将这些值相乘以创建要返回的数组中的值。或者,您可以简单地声明将每个值放入数组中:
for(int i= 0; i<= dArray.length-1; i+=1){
squareArray[i]= Math.pow(10 + (0.5*i), 2);
}
答案 6 :(得分:-1)
squareArray[
整数+
double ]
不是有效的数组索引。
数组索引总是整数。