Java中的二维数组赋值

Java中的二维数组赋值,java,arrays,2d,Java,Arrays,2d,用Java做一个小作业: 你给一个20人的班上的10个作业打分。编写一段代码,创建并初始化适当的数组。出于本练习的目的,可以为它们指定所有相同的点。你意识到你在评分上犯了一个错误,作业7需要给每个人0.5分。编写适当的段来执行此操作。打印每个学生在每个作业中的分数。您的输出应该包括学生id、作业编号和相应的分数 以下是我目前掌握的情况: public static void main (String [] args) { float[][] grades = new float[20][

用Java做一个小作业:

你给一个20人的班上的10个作业打分。编写一段代码,创建并初始化适当的数组。出于本练习的目的,可以为它们指定所有相同的点。你意识到你在评分上犯了一个错误,作业7需要给每个人0.5分。编写适当的段来执行此操作。打印每个学生在每个作业中的分数。您的输出应该包括学生id、作业编号和相应的分数

以下是我目前掌握的情况:

public static void main (String [] args)
{
    float[][] grades = new float[20][10];

    for (int student=0; student<20; student++)
    {
        for (int assignment=0; assignment<10; assignment++)
        {
            grades[student][assignment] = (float)6.0;
        }

        for (int assignment=6; assignment<10; assignment++);
        {
            grades[student][6] += 0.5;
        }   
publicstaticvoidmain(字符串[]args)
{
浮动[]等级=新浮动[20][10];
for(int student=0;student)
作业7的每个人得0.5分

这个

为此,在您现在应该修复的行之后,添加以下内容:

for (int assignment=0; assignment<10; assignment++) {
    System.out.printf("%d %d %d", student, assignment, grades[student][assignment]);
}

for(int assignment=0;assignment我想为您提供一些建议,供您随意使用(或不使用):

  • 将所有数字(10,20)设为常量。标准形式为
    private static final int ASSIGNMENT\u COUNT=10;
  • 使每个单独的步骤(分配、调整、输出)都成为单独的方法。这将清楚地表明它们是单独的步骤
  • 对float常量使用
    6.0F
    。这表明它是一个float,并且不需要强制转换
  • for
    循环中,将迭代变量与
    array.length
    进行比较,这样更安全,也更清楚地了解您要做的事情

  • 我的猜测是,如果您使用上述步骤重构代码(特别是第二步)接下来需要做的事情会更清楚。

    你在问什么?你目前有1个外循环和2个内循环,这是不正确的。你必须在第二个循环之后和第三个循环之前关闭第一个for循环。只有在前2个循环100%完成后,才能创建第三个(不是嵌套的)循环,只需再次迭代所有学生,并将第7个作业增加0.5
    {student id} {assignment id} {assignment points}
    
    for (int assignment=0; assignment<10; assignment++) {
        System.out.printf("%d %d %d", student, assignment, grades[student][assignment]);
    }