为什么输出我的平均分没有小数?为什么我的Eclipse会提示这个?
1、为什么输出我的平均分没有小数?
这段代码还有其他地方需要改进吗?
int[][] intArray=new int[3][2];
int Ywsum=0;
double Ywpj=0.0;
int Sxsum=0;
double Sxpj=0.0;
//从键盘输入学生成绩
Scanner s1=new Scanner(System.in);
for(int i=0;i<intArray.length;i++)
{
System.out.println("请输入第"+(i+1)+"个学生的语文成绩:");
intArray[i][0]=s1.nextInt();
System.out.println("请输入第"+(i+1)+"个学生的数学成绩:");
intArray[i][1]=s1.nextInt();
}
//算总成绩和平均分
for(int i=0;i<intArray.length;i++)
{
Ywsum+=intArray[i][0];
Sxsum+=intArray[i][1];
}
//总成绩和平均分
Ywpj=Ywsum/intArray.length;
Sxpj=Sxsum/intArray.length;
System.out.println("语文的总成绩为:"+Ywsum);
System.out.println("语文的平均分为:"+Ywpj);
System.out.println("数学的总成绩为:"+Sxsum);
System.out.println("数学的平均分为:"+Sxpj);2、为什么我的Eclipse会提示这个?该怎么解决?

0
收起
正在回答
4回答
同学你好,这里当两个整数相除,Java中规定默认为int型,将小数舍去,所以在进行输出时需要进行强转为double类型。修改后的代码如下:
Ywpj =(double) Ywsum / intArray.length; Sxpj = (double) Sxsum / intArray.length;
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
好帮手慕酷酷
2019-09-02 18:47:53
同学你好,老师进行修改后是正确的呢~具体如图:

具体代码如下:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int[][] intArray = new int[3][2];
int Ywsum = 0;
double Ywpj = 0.0;
int Sxsum = 0;
double Sxpj = 0.0;
// 从键盘输入学生成绩
Scanner s1 = new Scanner(System.in);
for (int i = 0; i < intArray.length; i++) {
System.out.println("请输入第" + (i + 1) + "个学生的语文成绩:");
intArray[i][0] = s1.nextInt();
System.out.println("请输入第" + (i + 1) + "个学生的数学成绩:");
intArray[i][1] = s1.nextInt();
}
// 算总成绩和平均分
for (int i = 0; i < intArray.length; i++) {
Ywsum += intArray[i][0];
Sxsum += intArray[i][1];
}
// 总成绩和平均分
Ywpj =(double) Ywsum / intArray.length;
Sxpj = (double)Sxsum / intArray.length;
System.out.println("语文的总成绩为:" + Ywsum);
System.out.println("语文的平均分为:" + Ywpj);
System.out.println("数学的总成绩为:" + Sxsum);
System.out.println("数学的平均分为:" + Sxpj);
}
}建议同学尝试输入不同的数据,进行测试哦~
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星