我这个代码是不是废的,哈哈。
public class ScoreDemo{
public static void main (String[] args){
//定义一个三行两列的整型二维数组intArray
int[][] intArray=next int[3][2];
int sumC=0,sumM=0;
//从键盘输入学生成绩
Scanner sc=new Scanner(System.in);
for(int i=o;i<intArray.length;i++){
System.out.print("请输入第"+(i+1)+"个学生的语文成绩:");
intArray[i][0]=sc.nextint();
System.out.print("请输入第"+(i+1)+"个学生的数学成绩:");
intArray[i][1]=sc.nextint();
}
//语文总成绩平均分
for(int i=0;i<intArray.length;i++){
sumC=sumC+intArray[i][0];
}
double aveC=sumC/intArray.length;
System.out.print(aveC);
//数学总成绩平均分
for(int i=o;i<intArray.length;i++){
sumM=sumM+intArray[i][1];
}
double aveM=sumM/intArrat.length;
System.out.print(aveM);
}
} 还有几个疑问。第一,为什么输入的是i+1而不是i.当i=0时应该是第一行学生的成绩吧,i+1岂不是第一次运行就是第二行了。第二,第一个fo可不可以省去,直接设立int i=0,然后运行,我的理解中如果输入了树枝,会因为没达到条件而一直运行到i<3吧。还有,算平均数那个double可不可以在开头设置,是不是只要不赋值就可以了,等到算平均数再赋值。
正在回答 回答被采纳积分+1
int sumC=0,sumM=0;
int intArry[][]=new int[3][2];
for(int i=0;i<intArry.length;i++) {
for(int j=0;j<intArry[i].length;j++) {
if(j==0)System.out.println("请输入第"+(i+1)+"个学生的语文成绩:");
else System.out.println("请输入第"+(i+1)+"个学生的数学成绩:");
Scanner sc=new Scanner(System.in);
intArry[i][j]=sc.nextInt();
if(j==0)sumC=sumC+intArry[i][0];
else sumM=sumM+intArry[i][1];}
}
System.out.println("语文的总成绩为:"+sumC);
System.out.println("语文的平均分为:"+(sumC/intArry.length));
System.out.println("数学的总成绩为:"+sumM);
System.out.println("数学的平均分为:"+(sumM/intArry.length));
同学你好,1. ParadoxEngine同学回答是正确的同学可以进行参考,修改后代码如下:
public static void main (String[] args){ //定义一个三行两列的整型二维数组intArray int[][] intArray=new int[3][2]; int sumC=0,sumM=0; //从键盘输入学生成绩 Scanner sc=new Scanner(System.in); for(int i=0;i<intArray.length;i++){ System.out.print("请输入第"+(i+1)+"个学生的语文成绩:"); intArray[i][0]=sc.nextInt(); System.out.print("请输入第"+(i+1)+"个学生的数学成绩:"); intArray[i][1]=sc.nextInt(); } //语文总成绩平均分 for(int i=0;i<intArray.length;i++){ sumC=sumC+intArray[i][0]; } double aveC=sumC/intArray.length; System.out.print(aveC); //数学总成绩平均分 for(int i=0;i<intArray.length;i++){ sumM=sumM+intArray[i][1]; } double aveM=sumM/intArray.length; System.out.print(aveM); }
2. 第一个循环不建议去除,但建议同学去除第二个与第三个循环,计算总成绩在第一个循环中进行计算。修改后代码如下:
public static void main (String[] args){ //定义一个三行两列的整型二维数组intArray int[][] intArray=new int[3][2]; int sumC=0,sumM=0; //从键盘输入学生成绩 Scanner sc=new Scanner(System.in); for(int i=0;i<intArray.length;i++){ System.out.print("请输入第"+(i+1)+"个学生的语文成绩:"); intArray[i][0]=sc.nextInt(); System.out.print("请输入第"+(i+1)+"个学生的数学成绩:"); intArray[i][1]=sc.nextInt(); sumC=sumC+intArray[i][0]; sumM=sumM+intArray[i][1]; } //语文总成绩平均分 double aveC=sumC/intArray.length; System.out.print(aveC); double aveM=sumM/intArray.length; System.out.print(aveM); }
如果我的回答解决了你的疑惑,请采纳,祝学习愉快了~
以下回答仅提供语法错误,还没看逻辑是否有问题。关于逻辑是否有误请看我下一篇回答。
int[][] intArray=next int[3][2]; 写法错误,应该是int[][] intArray=new int[3][2];
for(int i=o;i<intArray.length;i++) 写法错误,o应该是0
System.out.print("请输入第"+(i+1)+"个学生的语文成绩:");写法错误,最后应该是英文分号
intArray[i][0]=sc.nextint(); 写法错误,应该是nextInt()
System.out.print("请输入第"+(i+1)+"个学生的数学成绩:");错误同3
intArray[i][1]=sc.nextint(); 错误同4
for(int i=o;i<intArray.length;i++) 错误同2
double aveM=sumM/intArrat.length; 写法错误,应该是intArray
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星