鱼C论坛

 找回密码
 立即注册
查看: 272|回复: 3

[已解决]为什么后面几个是000 啊

[复制链接]
发表于 2023-12-15 23:00:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
假设在scores数组中保存了8名学生的成绩信息{33, 78, 27, 96, 76, 54, 92, 80},newScores数组内容为{34, 21, 44, 24, 56, 76, 54, 90, 87, 96, 76, 39}。现在需要将scores数组从第1个元素开始到结尾的所有元素复制到newScores的数组中,scores数组中的元素在newScores数组中从第2个元素开始排列,newScores数组新内容为{34, 21, 78, 27, 96, 76, 54, 92, 80, 96, 76, 39 }。(20分)
题目内容:

假设在scores数组中保存了8名学生的成绩信息{33, 78, 27, 96, 76, 54, 92, 80},newScores数组内容为{34, 21, 44, 24, 56, 76, 54, 90, 87, 96, 76, 39}。现在需要将scores数组从第1个元素开始到结尾的所有元素复制到newScores的数组中,scores数组中的元素在newScores数组中从第2个元素开始排列,newScores数组新内容为{34, 21, 78, 27, 96, 76, 54, 92, 80, 96, 76, 39 }。

输入格式:

  1. for (int i = 0; i < scores.length; i++) {

  2.         scores[i] = scanner.nextInt();

  3. }



  4. for (int i = 0; i < newScores.length; i++) {

  5.         newScores[i] = scanner.nextInt();

  6. }
复制代码


输出格式:

  1. for(int k=0; k < newScores.length; k++) {

  2.             System.out.print(newScores[k]+" ");

  3. }
复制代码


输入样例:

33 78 27 96 76 54 92 80

34 21 44 24 56 76 54 90 87 96 76 39

输出样例:

34 21 78 27 96 76 54 92 80 96 76 39

  1.         package we;
  2.        
  3.         import java.util.Scanner;
  4.        
  5.        
  6.                   
  7.                 public class t1 {  
  8.                     public static void main(String[] args) {  
  9.                         Scanner scanner = new Scanner(System.in);  
  10.                         int scores[] = new int[8];
  11.                         int newScores[] = new int[12];
  12.                         for (int i = 0; i < scores.length; i++) {
  13.        
  14.                                 scores[i] = scanner.nextInt();
  15.        
  16.                         }
  17.                     
  18.                         for (int i = 0; i < scores.length; i++) {  
  19.                                  newScores[i]= scanner.nextInt();  
  20.                         }  
  21.                   
  22.                         System.arraycopy(scores, 1, newScores, 2, 7);  
  23.                   
  24.                         for (int k = 0; k < newScores.length; k++) {  
  25.                             System.out.print(newScores[k] + " ");  
  26.                         }  
  27.                     }  
  28.                 }
  29.        
  30.        
复制代码
最佳答案
2023-12-15 23:02:43
2207122216 发表于 2023-12-15 23:02
输入样例:

33 78 27 96 76 54 92 80

34 21 44  ...

根据你的输入样例和输出样例,我重新整理了一下代码,希望能够满足你的需求:
  1. import java.util.Scanner;
  2. public class t1 {
  3.     public static void main(String[] args) {
  4.         Scanner scanner = new Scanner(System.in);
  5.         
  6.         int[] scores = new int[8];
  7.         int[] newScores = new int[12];
  8.         
  9.         // 读取scores数组的成绩信息
  10.         for (int i = 0; i < scores.length; i++) {
  11.             scores[i] = scanner.nextInt();
  12.         }
  13.         
  14.         // 读取newScores数组的初始内容
  15.         for (int i = 0; i < newScores.length; i++) {
  16.             newScores[i] = scanner.nextInt();
  17.         }
  18.         
  19.         // 将scores数组从第一个元素开始复制到newScores数组的第二个元素位置
  20.         System.arraycopy(scores, 0, newScores, 1, scores.length);
  21.         
  22.         // 输出newScores数组的内容
  23.         for (int k = 0; k < newScores.length; k++) {
  24.             System.out.print(newScores[k] + " ");
  25.         }
  26.     }
  27. }
复制代码

这样,你就可以按照你的输入样例,得到对应的输出结果。希望能够帮到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-15 23:00:35 | 显示全部楼层
你遇到的问题是关于数组的操作。首先,你需要注意一下代码中的几个问题:

1. 声明数组时,需要指定数组的大小,而不能使用int类型进行声明。

2. 读取输入时,应该将输入的数值保存在数组的对应位置上,而不是直接赋值给数组本身。

3. 在使用System.arraycopy()方法进行数组复制时,需要指定源数组、源数组起始位置、目标数组、目标数组起始位置以及要复制的元素个数。

根据题目的要求,我们可以进行如下修改:
  1. import java.util.Scanner;
  2. public class t1 {
  3.     public static void main(String[] args) {
  4.         Scanner scanner = new Scanner(System.in);
  5.         // 声明并初始化scores数组和newScores数组
  6.         int[] scores = new int[8];
  7.         int[] newScores = new int[12];
  8.         // 读取成绩信息并保存在scores数组中
  9.         for (int i = 0; i < scores.length; i++) {
  10.             scores[i] = scanner.nextInt();
  11.         }
  12.         // 读取newScores数组的初始内容
  13.         for (int i = 0; i < newScores.length; i++) {
  14.             newScores[i] = scanner.nextInt();
  15.         }
  16.         // 将scores数组从第一个元素开始复制到newScores数组的第二个元素位置
  17.         System.arraycopy(scores, 0, newScores, 1, scores.length);
  18.         // 输出newScores数组的内容
  19.         for (int k = 0; k < newScores.length; k++) {
  20.             System.out.print(newScores[k] + " ");
  21.         }
  22.     }
  23. }
复制代码

这样,你的代码就可以正确地将scores数组从第一个元素开始复制到newScores数组的第二个元素位置,并且输出了newScores数组的内容。希望这个解答对你有帮助!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-15 23:02:26 | 显示全部楼层
FishC 发表于 2023-12-15 23:00
你遇到的问题是关于数组的操作。首先,你需要注意一下代码中的几个问题:

1. 声明数组时,需要指定数组的 ...

输入样例:

33 78 27 96 76 54 92 80

34 21 44 24 56 76 54 90 87 96 76 39

输出样例:

34 21 78 27 96 76 54 92 80 96 76 39
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-15 23:02:43 | 显示全部楼层    本楼为最佳答案   
2207122216 发表于 2023-12-15 23:02
输入样例:

33 78 27 96 76 54 92 80

34 21 44  ...

根据你的输入样例和输出样例,我重新整理了一下代码,希望能够满足你的需求:
  1. import java.util.Scanner;
  2. public class t1 {
  3.     public static void main(String[] args) {
  4.         Scanner scanner = new Scanner(System.in);
  5.         
  6.         int[] scores = new int[8];
  7.         int[] newScores = new int[12];
  8.         
  9.         // 读取scores数组的成绩信息
  10.         for (int i = 0; i < scores.length; i++) {
  11.             scores[i] = scanner.nextInt();
  12.         }
  13.         
  14.         // 读取newScores数组的初始内容
  15.         for (int i = 0; i < newScores.length; i++) {
  16.             newScores[i] = scanner.nextInt();
  17.         }
  18.         
  19.         // 将scores数组从第一个元素开始复制到newScores数组的第二个元素位置
  20.         System.arraycopy(scores, 0, newScores, 1, scores.length);
  21.         
  22.         // 输出newScores数组的内容
  23.         for (int k = 0; k < newScores.length; k++) {
  24.             System.out.print(newScores[k] + " ");
  25.         }
  26.     }
  27. }
复制代码

这样,你就可以按照你的输入样例,得到对应的输出结果。希望能够帮到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 17:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表