1.没有实现课程效果求解?为什么只计算了一个数据?

1.没有实现课程效果求解?为什么只计算了一个数据?

没有实行课程效果,在第二层循环里面如何实现求总分平均分的效果?

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
package com.imooc.array;
 
import java.util.Scanner;
 
public class ScoreArray {
    public static void main(String[] args) {
        // 定义一个三行两列的整型二维数组intArray
        int[][] intArray = new int[3][2];
        for (int i = 0; i < intArray.length; i++) {
             
            for (int j = 0; j < intArray[i].length - 1; j++) {   
                String[] str = { "语文""数学" };
                for(String m:str){
                System.out.println("请输入第" + (i+1) + "个同学的" +m+ "成绩");}
                Scanner c = new Scanner(System.in);
                int p = c.nextInt();
                // 求语文的总成绩和平均分
                if (j== 0) {
                    int sum1 = 0;
                    sum1 = sum1 + p;
                    int avg1 = sum1 / 3;
                    System.out.println(sum1);
                    System.out.println(avg1);
                }
                // 求数学的总成绩和平均分
                else {
                    int sum2 = 0;
                    sum2 = sum2 + p;
                    int avg2 = (sum2) / 3;
                    System.out.println(sum2);
                    System.out.println(avg2);
                }
            }
             
            System.out.println();
        }
 
    }
 
}


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

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

1回答
好帮手慕珊 2017-10-02 09:57:12

这里其实一个循环就可以了,for(String m:str)这个循环和内重循环都可以去掉。

在循环外面,定义两个变量sum1和sum2分别用来存储语文和数学的成绩总和。

在循环里先输出输入语文成绩的提示语句,将成绩存储在数组元素intArray[i][0]中,然后累加到sum1上

接着输入数学成绩的提示语句,将成绩存储到数组元素intArray[i][1]中,然后累加到sum2上

循环结束后,分别用sum1和sum2除以3,就得到了平均成绩了。祝学习愉快!

  • 提问者 Ironxi_work #1
    当初构想的思路如下:创建三行两列的二维数组那么1.可将行数视作外重循环(i表示函数);2.将列数视作第二重循环,用i来控制列数;3.将String[] str = { "语文", "数学" }也看作最内层循环,嵌套在第二层里面。通过从键盘接受数据填充二维数组的元素,这样去实现客户层效果,当发现每次都只能填充一个元素,每次都只计算填充的那个数字,没有达到课程的效果。如果有七门课程十八个同学参考如上的方法就太繁复,都以循环来控制的话就会简单许多,但功力不够画虎不成,请教一下老师如果都以循环来控制的话该怎么实现。
    2017-10-08 18:34:54
  • 好帮手慕珊 回复 提问者 Ironxi_work #2
    如果是七门课程十八个同学这类的问题,建议定义一个18行7列的二维数组,每一行就是一个学生的七门课程的成绩。用一个二重循环,外重循环从0到17,内重循环从0到6,内重循环和外重循环之间提示,请输入第几个学生的七门课程成绩,把课程名按顺序输出。也可以在内重循环中嵌套一个switch结果,比如当switch后的变量值为0,就输出请输入语文成绩,以此类推。可以尝试一下。
    2017-10-08 20:30:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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