输入完第3个学生的数学成绩后怎么又变成输入第1个学生成绩了??死循环??

输入完第3个学生的数学成绩后怎么又变成输入第1个学生成绩了??死循环??

public class ScoreDemo {

public static void main(String[] args){

int intArry[][];

intArry= new int[3][2];

Scanner sc=new Scanner(System.in);

//System.out.println(intArry.length);

int ywsum=0,ywaver,sxsum=0,sxaver;

for(int i=0;i<intArry.length;i++){

for(int j=0;j<intArry.length;j++){

System.out.println("请输入第"+(j+1)+"个学生的语文成绩:");

intArry[i][0]=sc.nextInt();

ywsum=ywsum+intArry[i][0];

//System.out.println(ywsum);

System.out.println("请输入第"+(j+1)+"个学生的数学成绩:");

intArry[i][1]=sc.nextInt();

sxsum=sxsum+intArry[i][1];

}

}

ywaver=ywsum/3;

sxaver=sxsum/3;

System.out.println("语文总成绩为:"+ywsum);

System.out.println("语文平均成绩为:"+ywaver);

System.out.println("数学总成绩为:"+sxsum);

System.out.println("数学平均成绩为:"+sxaver);

}

}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

刚刚给你改进了下代码,主要是,没有定义循环的结束的条件,还有,你那个for中J,代表啥?跟第一个for一样的吗?应该改进,还有,最后求平均值,你放错位置了,你那样每输出2个值,就给你求出一次平均值,是不是看着很烦?往下挪一格,你看看代码吧。

public static void main(String[] args) {

	int intArry[][];

	intArry= new int[3][2];

	Scanner sc=new Scanner(System.in);

	//System.out.println(intArry.length);

	int ywsum=0,ywaver,sxsum=0,sxaver;

	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)+"个学生的语文成绩:");

			intArry[i][0]=sc.nextInt();

			ywsum=ywsum+intArry[i][0];}

			//System.out.println(ywsum);
			else {

			System.out.println("请输入第"+(i+1)+"个学生的数学成绩:");

			intArry[i][1]=sc.nextInt();

			sxsum=sxsum+intArry[i][1];
			}
		}
		
	}
	ywaver=ywsum/3;

	sxaver=sxsum/3;

	System.out.println("语文总成绩为:"+ywsum);

	System.out.println("语文平均成绩为:"+ywaver);

	System.out.println("数学总成绩为:"+sxsum);

	System.out.println("数学平均成绩为:"+sxaver);
	}
}


  • qq_夏日青枫_0 提问者 #1
    感觉有点问题,for(int j=0;j<intArry[i].length;j++){ if(j==0) { System.out.println("请输入第"+(i+1)+"个学生的语文成绩:"); intArry[i][0]=sc.nextInt(); ywsum=ywsum+intArry[i][0];} 到这里都没有问题,因为此时的j==0满足if条件 所以输出“请输入第1个学生的语文成绩:”但是输入完语文成绩后,紧接着要输出“请输入第1个学生的数学成绩:”这一句怎么是放在else中,不理解
    2019-02-21 15:28:39
  • 同学你好,这是一个判断语句,如果j==0,满足这个条件就执行“请输入第1个学生的语文成绩”,不满足则执行“请输入第1个学生的数学成绩”。所以j循环时,当j==0时,就执行if语句,然后继续循环,j==1则执行else语句。然后j<intArry[i].length也就是0和1。"慕前端9231336"同学修改的也对,但是不简洁,同学可以继续使用一个循环来完成这道题。祝:学习愉快~
    2019-02-21 17:13:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师