在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;
} 我知道我需要再做一次double for循环,以完成最终输出这三个值的序列,但我不确定具体是什么,因为我不能再次执行最初的double循环。
发布于 2015-02-13 06:49:34
对于作业7,
credit 0.5分给每个人
这
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。
您的输出应包括学生号、作业号和相应的分数。
如果我理解这一点,你必须为每个学生的每份作业打印下面的行:
{student id} {assignment id} {assignment points}为此,在您现在应该已修复的行之后,添加以下内容:
for (int assignment=0; assignment<10; assignment++) {
System.out.printf("%d %d %d", student, assignment, grades[student][assignment]);
}该循环与添加分数的循环几乎相同,但问题是您必须在打印结果之前修正第7号分配,因此您不能只在同一循环中打印。
发布于 2015-02-13 07:40:40
我想给你一些建议,让你按自己的意愿使用(或不使用):
private static final int ASSIGNMENT_COUNT = 10;6.0F作为浮点数常量。这清楚地表明它是一个浮点数,并消除了强制转换的需要。for循环中将迭代变量与array.length进行比较-这更安全,并且使您尝试做的事情更清楚。我的猜测是,如果你使用上面的步骤重构你的代码(特别是第二个),那么你下一步需要做什么就会变得更加清晰。
https://stackoverflow.com/questions/28489098
复制相似问题