首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的二维数组赋值

Java中的二维数组赋值
EN

Stack Overflow用户
提问于 2015-02-13 06:29:08
回答 2查看 120关注 0票数 0

在Java中做一个小任务:

你正在为一个20人的班级评分10份作业。写一段代码来创建和初始化一个合适的数组。在本练习中,您可以为它们指定所有相同的点。你意识到你在评分中犯了一个错误,需要给作业7的每个人打0.5分。写下适当的部分来做这件事。打印每个作业的每个学生的成绩。您的输出应包括学生id、作业编号和相应的分数。

这是我到目前为止所知道的:

代码语言:javascript
复制
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;
        }   

我知道我需要再做一次double for循环,以完成最终输出这三个值的序列,但我不确定具体是什么,因为我不能再次执行最初的double循环。

EN

回答 2

Stack Overflow用户

发布于 2015-02-13 06:49:34

对于作业7,

credit 0.5分给每个人

代码语言:javascript
复制
for (int assignment = 6; assignment < 10; assignment++); {
    grades[student][6] += 0.5;
}

不会像作业要求你做的那样。假设这是在first for循环中,虽然你遗漏了一个}),而且缩进很奇怪;这将改变学生的第7(索引6)年级10 -6=4次,这将为每个学生增加(10 - 6) * 0.5 =2分,但作业只要求增加0.5分。你应该删除前面提到的for循环,因为它不是必需的,只保留你要添加点的body - logic。

您的输出应包括学生号、作业号和相应的分数。

如果我理解这一点,你必须为每个学生的每份作业打印下面的行:

代码语言:javascript
复制
{student id} {assignment id} {assignment points}

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

代码语言:javascript
复制
for (int assignment=0; assignment<10; assignment++) {
    System.out.printf("%d %d %d", student, assignment, grades[student][assignment]);
}

该循环与添加分数的循环几乎相同,但问题是您必须在打印结果之前修正第7号分配,因此您不能只在同一循环中打印。

票数 0
EN

Stack Overflow用户

发布于 2015-02-13 07:40:40

我想给你一些建议,让你按自己的意愿使用(或不使用):

  1. 使所有的数字(10,20)成为常量。标准形式是分配每个单独的步骤( private static final int ASSIGNMENT_COUNT = 10;
  2. Make,assign,output)单独的方法。这将清楚地表明它们是独立的步骤。
  3. 使用6.0F作为浮点数常量。这清楚地表明它是一个浮点数,并消除了强制转换的需要。
  4. 在您的for循环中将迭代变量与array.length进行比较-这更安全,并且使您尝试做的事情更清楚。

我的猜测是,如果你使用上面的步骤重构你的代码(特别是第二个),那么你下一步需要做什么就会变得更加清晰。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28489098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档