java - 我不懂一行编程代码
问题描述
这是我声明将在主类中调用的所有方法的类的代码。我在编写getAverageValue
代码时遇到了困难,因为我不知道该怎么做。
import java.util.Random;
public class MyCalculator
{
private int min;
private int max;
private int sum;
private int average;
public int[] generatedRandomData()
{
int inputData[] = new int[10];
Random generatedRandom = new Random();
for(int i=0; i<10; i++)
{
inputData[i] = generatedRandom.nextInt(100);
}
return inputData;
}
public int getMaxValue (int[] inputData)
{
int max;
max = inputData[0];
for (int i = 1; i <inputData.length; i++)
{
if(max < inputData[i])
max = inputData[i];
}
return max;
}
public int getMinValue (int[] inputData)
{
int min;
min =inputData[0];
for (int i = 1; i <inputData.length; i++)
{
if(min > inputData[i])
min = inputData[i];
}
return min;
}
public int getSumValue (int[] inputData)
{
int sum;
sum =inputData[0];
for (int i = 1; i <inputData.length; i++)
{
sum+=inputData[i];
}
return sum;
}
public float getAverageValue (int[] inputData, int getSumValue)
{
int average= 0;
for (int i = 1; i <inputData.length; i++)
{
average = getSumValue/inputData.length;
}
return average;
}
}
虽然这是我的主要课程的代码:
public class MyApp
{
public static void main (String[] args)
{
MyCalculator calculator = new MyCalculator();
int [] inputData = calculator.generatedRandomData();
System.out.println("The generated values are: ");
for (int value: inputData)
System.out.print(value + ", ");
System.out.println();
System.out.println();
System.out.println("Max Value: " + calculator.getMaxValue(inputData));
System.out.println("Min Value: " + calculator.getMinValue(inputData));
System.out.println("Sum Value: " + calculator.getSumValue(inputData));
System.out.println("Avg Value: " + calculator.getAverageValue(calculator.getSumValue(inputData), inputData.length));
}
}
编译此代码时,我收到以下错误:
incompatible types: int cannot be converted to int[]
System.out.println("Avg Value: " + calculator.getAverageValue(calculator.getSumValue(inputData), inputData.length));
^
Note: Some messages have been simplified;
解决方案
的签名getAverageValue
是
public float getAverageValue (int[] inputData, int getSumValue)
即该方法期望输入数据为int[]
数组,然后是总和的值。
你称它为
calculator.getAverageValue(calculator.getSumValue(inputData), inputData.length)
即总和的值(这是int
编译器抱怨的“不兼容类型”)和输入的数量。
正确的是:
calculator.getAverageValue(inputData, calculator.getSumValue(inputData))
附带说明:您的实现可能与您认为的不同。请参阅整数除法:如何产生双精度数?想想你是否真的需要一个循环。
推荐阅读
- flutter - 如何在颤振中创建自定义工具栏?
- flutter - 如何在颤动的列表视图中设置卡片的宽度?
- javascript - 如何存储从 API 检索的值并在整个应用程序中使用它
- windows - 如何隐藏 tcp 端口侦听器 powershell 脚本?
- javascript - Vue.js:无法从云 Firestore 中检索数据
- kubernetes - 在 kubernetes 中创建 yaml 文件时出现此错误
- python - 如何获得 PCA 的权重
- delphi-10.2-tokyo - Delphi如何从exe中的dfm中删除已删除的属性
- python-3.x - 插件 Stopmotion 预览无法在 Entangle 2.0 中启动
- google-maps - ionic-native-google-maps 正确显示地图(设置目标和位置)但不响应任何手势或按钮点击