java吧 关注:1,258,196贴子:12,750,755
  • 3回复贴,共1
求助

为什么输出结果是3.0而不是3.5啊

只看楼主收藏回复

图片是题目,我的答案,然后输出的结果一直是3.0而不是3.5,应该怎么改啊
import java.util.Scanner;
public class Syy {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[] arr;
System.out.print("请输入数组中的元素个数:");
int len=sc.nextInt();
arr=new int[len];
for(int i=0;i<len;i++){
System.out.print("请输入第"+(i+1)+"个元素:");
arr[i]=sc.nextInt();
}
int sum=0;
for(int num:arr) {sum=sum+num;}
double ave=sum/len;
System.out.print("数组的和为"+sum);
System.out.print("数组的平均值为"+ave);
}
}


IP属地:河南来自Android客户端1楼2022-09-29 13:19回复
    int/int是取整,把sum改成doubule类型或者sum*1.0/len


    IP属地:江西来自Android客户端2楼2022-09-29 13:24
    回复
      double ave=sum/len; == double ave = (double)(int)sum/(int)len
      自己看下后面的数据类型。两个int类型,你出来的还是int,出来int之后强转double有啥意义。


      IP属地:江苏3楼2022-09-29 13:45
      回复
        答案在二楼


        IP属地:广东来自Android客户端4楼2022-09-29 18:14
        回复