5.以下程序求解所有圆的面积,给定的所有圆的半径保存在一个String数组 中。 class Circles{ 14144 doublePI=3.1415926;//常量 double radius []; Circles (int nums) { radius = new double [nums]; ? public double getSumArea (String[] strRadius) { for(int i=0; i‹strRadius.length; i++){ Double dTmp = 代码5 radius [i] = dTmp.doubleValue ); ? double sum = 0; for (double item:radius) { sum += PI*item*item; } return sum; public class Test { public static void main(String[] args) { String strRadius [] = {"10", "12.5", "21", "2", "13", "33"}; Circles circles = new Circles (stradius.length); system.out.printin(“所有圆的总面积为:“+_代码5); }
时间: 2024-03-08 13:46:22 浏览: 31
这段代码存在几个问题:
1. 在 Circles 类的构造方法中,缺少了对 radius 数组的初始化。
2. 在 getSumArea 方法中,代码5处应该使用 Double.parseDouble 方法来将字符串转换为 double 类型,而不是使用 Double 类的构造方法。
3. 在 getSumArea 方法中,缺少了对 radius 数组赋值的语句。
4. 在 Test 类的 main 方法中,代码5处应该调用 circles.getSumArea 方法来计算所有圆的总面积。
5. 在 Test 类的 main 方法中,代码5处应该使用 System.out.println 方法来打印输出结果。
正确的代码应该如下所示:
```java
class Circles {
double PI = 3.1415926; // 常量
double[] radius;
Circles(int nums) {
radius = new double[nums];
for (int i = 0; i < nums; i++) {
radius[i] = 0;
}
}
public double getSumArea(String[] strRadius) {
for (int i = 0; i < strRadius.length; i++) {
double dTmp = Double.parseDouble(strRadius[i]);
radius[i] = dTmp;
}
double sum = 0;
for (double item : radius) {
sum += PI * item * item;
}
return sum;
}
}
public class Test {
public static void main(String[] args) {
String[] strRadius = { "10", "12.5", "21", "2", "13", "33" };
Circles circles = new Circles(strRadius.length);
System.out.println("所有圆的总面积为:" + circles.getSumArea(strRadius));
}
}
```
输出结果应该为:
```
所有圆的总面积为:6611.029683
```