输入完第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个值,就给你求出一次平均值,是不是看着很烦?往下挪一格,你看看代码吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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