我对zybooks with language in Java中的7.7章有问题。挑战活动如下所述:
编写一个循环,将每个数组元素设置为自身和下一个元素之和,但最后一个元素保持不变。注意不要超出最后一个元素的索引。例如:
初始分数: 10,20,30,40
循环后得分: 30,50,70,40
第一个元素是30或10 + 20,第二个元素是50或20 + 30,第三个元素是70或30 + 40。最后一个元素保持不变。
这是它提供的代码和我的代码,我会说哪一部分是我的代码:
public class StudentScores {
public static void main (String [] args) {
final int SCORES_SIZE = 4;
int[] bonusScores = new int[SCORES_SIZE];
int i = 0;
bonusScores[0] = 10;
bonusScores[1] = 20;
bonusScores[2] = 30;
bonusScores[3] = 40;
if (SCORES_SIZE==0){
System.out.println("");
}
else if (SCORES_SIZE==1){
bonusScores[i]=bonusScores[i];
}
else{
for (i=0; i<SCORES_SIZE; ++i){
if (i==3){
bonusScores[i]=bonusScores[i];
}
else{
bonusScores[i]=bonusScores[i]+bonusScores[i+1];
}
}
}
for (i = 0; i < SCORES_SIZE; ++i) {
System.out.print(bonusScores[i] + " ");
}
System.out.println();
return;
}
}
因此,我唯一可以更改的部分是,我的代码在oldscores3部分之后开始,在else语句之后结束。所以我的问题是这个程序对我的代码做了什么:
测试bonusScores = {10,20,30,40}您的输出30 50 70 40检查
测试bonusScores = { 199 }您的输出199检查
运行时错误程序未结束。这通常是由于无效的存储器/数组访问或除以0造成的。
因此,我不知道它在做什么,是什么导致了运行时错误,因此我显然不知道作为结果该做什么。如果有人通过了这个,请让我知道。我知道有一条线索是这样的:
Copying and modifying array elements
然而,这个线程不同于我的线程,因为那实际上是我刚刚在没有那个线程的帮助下完成的那个线程。所以请不要在不可能的时候重复说可能的话。提前谢谢。
发布于 2019-02-21 10:17:42
public class StudentScores {
public static void main (String [] args) {
final int SCORES_SIZE = 4;
int[] bonusScores = new int[SCORES_SIZE];
int i;
bonusScores[0] = 10;
bonusScores[1] = 20;
bonusScores[2] = 30;
bonusScores[3] = 40;
for(i = 0; i < SCORES_SIZE -1; i++) {
bonusScores[i] = bonusScores[i] + bonusScores[i+1];
}
for (i = 0; i < bonusScores.length; ++i) {
System.out.print(bonusScores[i] + " ");
}
System.out.println();
}
}
https://stackoverflow.com/questions/46750881
复制相似问题