Java 复制和修改数组元素
我必须为一个数组编写一个循环,该数组希望在输出中使用旧的分数,但却将Java 复制和修改数组元素,java,arrays,loops,Java,Arrays,Loops,我必须为一个数组编写一个循环,该数组希望在输出中使用旧的分数,但却将newScores[0]=20和newScores[3]=10。 当它测试{10,20,30,40,}时,我通过了第一次运行。它期望输出:20 30 40 10。 当它通过第一次测试时,它会使用oldScores={199}再次测试它,它期望的输出仅为199 public class StudentScores { public static void main (String [] args) {
newScores[0]=20
和newScores[3]=10
。
当它测试{10,20,30,40,}
时,我通过了第一次运行。它期望输出:20 30 40 10
。
当它通过第一次测试时,它会使用oldScores={199}
再次测试它,它期望的输出仅为199
public class StudentScores {
public static void main (String [] args) {
final int SCORES_SIZE = 4;
int[] oldScores = new int[SCORES_SIZE];
int[] newScores = new int[SCORES_SIZE];
int i = 0;
oldScores[0] = 10;
oldScores[1] = 20;
oldScores[2] = 30;
oldScores[3] = 40;
/* solution goes here */
for (i = 0; i < SCORES_SIZE; ++i) {
System.out.print(newScores[i] + " ");
}
System.out.println();
return;
}
}
公共班级学生成绩{
公共静态void main(字符串[]args){
最终int分数_SIZE=4;
int[]旧分数=新整数[分数大小];
int[]新闻核心=新的int[分数大小];
int i=0;
旧分数[0]=10;
旧分数[1]=20;
旧分数[2]=30;
旧分数[3]=40;
/*解决方案就在这里*/
对于(i=0;i
我使用的代码在这里
for(i=0; i<SCORES_SIZE -1; i++){
newScores[i] = oldScores[i +1];
newScores[3] = oldScores[0];
}
for(i=0;i您似乎走上了正确的道路,但您的解决方案的逻辑过于复杂。下面是一个更简单的选项:
System.arraycopy(oldScores, 0, newScores, 0, oldScores.length); // create copy of oldScores and place it in newScores.
newScores[0] = 20;
newScores[3] = 10;
或者,如果您不希望使用System.arraycopy()
,您可以通过简单地迭代每个元素来复制数组。例如
for(int i = 0; i < oldScores.length; i++) {
newScores[i] = oldScores[i];
}
for(int i=0;i
您似乎走上了正确的道路,但您的解决方案的逻辑过于复杂。下面是一个更简单的选项:
System.arraycopy(oldScores, 0, newScores, 0, oldScores.length); // create copy of oldScores and place it in newScores.
newScores[0] = 20;
newScores[3] = 10;
或者,如果您不希望使用System.arraycopy()
,您可以通过简单地迭代每个元素来复制数组。例如
for(int i = 0; i < oldScores.length; i++) {
newScores[i] = oldScores[i];
}
for(int i=0;i
您似乎试图通过旋转数组中的元素来创建数组新闻核心
。
在每个循环中,您不需要执行newScores[3]=oldScores[0];
,只需执行一次即可
以下解决方案适用于给定分数\u大小的数组
for(i = 0; i < SCORES_SIZE - 1; i++){
newScores[i] = oldScores[i + 1];
}
newScores[SCORES_SIZE - 1] = oldScores[0]; // set first element of "oldScores" to last element of "newScores"
for(i=0;i
您似乎试图通过旋转数组中的元素来创建数组新闻核心
。
在每个循环中,您不需要执行newScores[3]=oldScores[0];
,只需执行一次即可
以下解决方案适用于给定分数\u大小的数组
for(i = 0; i < SCORES_SIZE - 1; i++){
newScores[i] = oldScores[i + 1];
}
newScores[SCORES_SIZE - 1] = oldScores[0]; // set first element of "oldScores" to last element of "newScores"
for(i=0;i
首先,将旧分数复制到新闻核心中。然后,将新闻核心[0]设置为20,将新闻核心[3]设置为10。首先,将旧分数复制到新闻核心中。然后,将新闻核心[0]设置为20,将新闻核心[3]设置为10。