请问这个代码为什么不对呀

请问这个代码为什么不对呀

public class ScoreDemo{

   public static void main(String[] args){

       //定义一个三行两列的整型二维数组intArray

intArray=new int[3][2];

int sumyu=0,sumshu=0;

       //从键盘输入学生成绩,要求输入顺序与效果图一致

Scanner sc=new Scanner(System.in);

for(int i=0;i<3;i++){

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

}


    for(int j=0;j<2;j++){

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

        

        

    }


       //求语文的总成绩和平均分

sumyu=(intArray[0][0]+intArray[0][1]+intArray[0][2])/3;

sumshu=(intArray[1][0]+intArray[1][1]+intArray[1][2])/3;

System.out.println("语平"+sumyu);

System.out.println("数平"+sumshu);


       //求数学的总成绩和平均分



   }

}


正在回答 回答被采纳积分+1

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

4回答
l学生哥 2019-08-06 11:21:10
  1. Scanner sc=new Scanner(System.in);   这个只是创建输入对象.要用东西来接收你输入的值呀.

        hc = sc.nextInt();

2. 你用for循环嵌套,这种方式,无法输出语文与数学的输入提示,只能这些写,请输入第N位同学的分数.


l学生哥 2019-08-06 11:14:32


思路有点小问题.下面可以参考


int[][] intArry = new int[3][2];

Scanner sc = new Scanner(System.in);

  

   

    

    for(int x=0;x<3;x++){

   

    

    for(int y=0;y<2;y++){

   

    System.out.println("请输入第"+(x+1)+"个学生学成绩");

    int sm = sc.nextInt();

    intArry[x][y] = sm;

    }

    }

   int sum = intArry[0][0]+intArry[1][0]+intArry[2][0];

System.out.println("语文成绩总数"+sum);

System.out.println("数学成绩"+(sum/3));


  • 同学你好,楼上中的思路并没有问题哦,定义二维数组是3行2列,在循环中遍历行数,比如第一行-->score[0][0] score[0][1]在上面的代码中只遍历了行,每一行通过行数下标一致,列数下标0或1来为对应下标元素赋值!这样也是可以的,当然同学的写法也是没有错的!很棒呐,继续加油!
    2019-08-06 16:44:12
好帮手慕小班 2019-08-04 10:00:42

        同学你好,1、请注意以后贴代码要贴在回答中,否则会失去代码格式,例如

http://img1.sycdn.imooc.com//climg/5d4639cb0001476801390343.jpg

    2、复制运行贴出代码,运行思路没有问题,但是复制贴出代码有如下问题:

             没有注意分号的中英文格式; 缺少分号;

            变量声明和使用不一致,例如

http://img1.sycdn.imooc.com//climg/5d463c7400015ad106300374.jpg

        注意代码规范哟,这些都是语法错误!

    最后在求平均分时,可以除以数组的长度哟,例如

http://img1.sycdn.imooc.com//climg/5d463c230001cb2905400685.jpg

        如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕酷酷 2019-08-03 18:18:53

同学你好,代码的整体思路有些问题,另外,初始化二维数组的语法是不对的。

可以根据以下思路尝试完成:

1)首先定义一个三行两列的二维数组intArray。

2)定义两个变量sum1和sum2,初始值为0,分别用来存放语文和数学的成绩总和

3)使用循环完成,循环变量的值i小于intArray.length;

   在循环中首先输出输入第X个学生的语文成绩的提示,然后把键盘输入的整数值赋值给intArray[i][0],接着累加到sum1。用同样的方法将数学成绩赋值给intArray[i][1],然后将数据累加到sum2

所以,也就是二维数组第一列存储语文成绩,第二列存储数学成绩

3)在循环外利用总和求平均值并输出。

同学可以尝试以上思路进行完善代码。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!




  • 提问者 海豹熊 #1
    谢谢老师,我想了一下按你的思路重新打了,请看看以下对不对: public class ScoreDemo{ public static void main(String[] args){ //定义一个三行两列的整型二维数组intArray int[][] score=new int[3][2]; int sum1=0,sum2=0; int average1=0,average2=0; //从键盘输入学生成绩,要求输入顺序与效果图一致 for (int i=0;i<3;i++){ Scanner sc=new Scanner(System.in); System.out.println("请输入第"+(i+1)+"个学生的语文成绩"); score[i][0]=sc.nextInt(); sum1=sum1+score[i][0]; System.out.println("请输入第"+(i+1)+"个学生的数学成绩") socre[i][1]=sc.nextInt(); sum2=sum2+score[i][1]; } //求语文的总成绩和平均分 average1=sum1/3; averafe2=sum2/3; //求数学的总成绩和平均分 } } 感谢!
    2019-08-03 20:10:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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