gpt4 book ai didi

java - 简单java方法的错误结果

转载 作者:行者123 更新时间:2023-11-30 03:23:13 28 4
gpt4 key购买 nike

我正在尝试编写一个程序,询问整数数组的大小、数组的值,然后找到正整数的平均值并打印它。当我运行它时,有时会得到错误的结果。我还没有确定错误结果取决于什么,但例如,如果我输入以下输入:“数组大小:4,数组值:1,2,-5,5”我得到平均值“2.0”

这是我的代码:

import java.util.Scanner;
public class Mitra {

private static Scanner user_input;

double avg (int[] arr, int size)
{
int sum = 0;
int numbers = 0;
for (int i=0; i<size;i++)
{
if (arr[i]>0)
{
sum = sum+arr[i];
numbers++;
}
else{
continue;
}
}
double average = sum/numbers;
return average;
}


public static void main(String[] args) {
user_input = new Scanner (System.in);
System.out.println("enter array length");
int alength = user_input.nextInt();
int[] array_1 = new int[alength];
for (int i=0; i<alength;i++)
{
System.out.println("Enter array value "+i);
array_1[i] = user_input.nextInt();
}
Mitra obj = new Mitra();
double result = obj.avg(array_1, alength);
System.out.println("The average of the positive numbers of the array is "+result);
}

}

最佳答案

改变

double average = sum/numbers;

double average = (double)sum/numbers;

强制浮点除法。

否则,int 除法(这是除两个 int 类型变量时发生的运算)除以 8/3 时将得到 2(正如您在示例中所做的那样)。

关于java - 简单java方法的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30829006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com