我有一个程序,用户在数组中输入标记,然后得到平均值
这是使用Jcreator
我的问题是,当我要求我的程序的平均值时,它表示平均值为1
这是我的代码:
//averageEnglish
public void averageEnglish()
{
System.out.println("The Average Mark Of English Is");
int averageEnglish = english.length / 10;
System.out.println("-----------");
System.out.println(averageEnglish);
System.out.println("-----------");
}//End of averageEnglish
英语是一个int数组
int[] english = new int [10];
averageEnglish是一个变量
int averageEnglish;
答案 0 :(得分:3)
10/10等于1.非常正常。 你需要做的是得到所有元素的总和,并将它们除以数组的长度。 另外:你使用的IDE并不是真正相关的
答案 1 :(得分:3)
english.length/10
不是数组的平均值,它只是数组的长度(10)除以10,即1.你需要总结数组的所有值并将总和除以数组的长度。
通常,您不仅要将结果显示为整数,而且还要包含几位小数,请将总和和平均结果存储为double。
double sum = 0;
for (int i = 0; i < english.length; i++) {
sum += english[i];
}
double average = sum / english.length;
答案 2 :(得分:1)
你正在将数组的长度除以常数10(恰好是长度),所以你自然得到1.你应该对数组的所有值求和,然后除以它的长度:
double englighSum = 0;
for (int i = 0; i < english.length; ++i)
englishSum += english[i];
}
double englishAverage = englishSum / english.length;
答案 3 :(得分:0)
如果您希望 user 填充数组,则需要使用Scanner
对象。
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the number of grades: ");
int n = scanner.nextInt();
double[] english = new double[n];
for(int i=0; i<n; i++)
{
System.out.println("Please enter the grade for grade " + (i+1) + ":");
english[i] = scanner.nextDouble();
}
scanner.close();
您可以使用Markus Johnsson的代码继续。
答案 4 :(得分:0)
您预计数组的大小并假设它总是10,这是第一个错误,然后您根据数组元素的数字而不是总和:
int[] english = new int[10];
/* Now we assume you did some stuff here to fill the array. */
//averageEnglish
public void averageEnglish()
{
System.out.println("The Average Mark Of English Is");
int noOfElements = english.length; // The divisor
int sum = 0; // The dividend
for (int i = 0; i < noOfElements; i++)
{
sum += english[i];
}
// Here is your Average (Should be of type double since there will be floating points)
double averageEnglish = sum / noOfElements;
System.out.println("-----------");
System.out.println(averageEnglish);
System.out.println("-----------");
}//End of averageEnglish
答案 5 :(得分:-1)
english.lenght的值始终为10.如下例所示:
int[] english = new int [10];
英语数组保存的数据无关紧要,其长度始终为10。 为了进行正确的计算,请使用数据,而不是数组的长度。