【代码求助】学校JAVA作业求助

时过境迁257 2021-12-14 11:13:12

不涉及任何商业性质 只是作业不会做而已。老师上课解说 又很抽象。

 

 

...全文
205 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jkcc 2021-12-14
  • 打赏
  • 举报
回复

package amqp.publisher;

import java.lang.reflect.Array;
import java.util.Scanner;

/**
 * @ProjectName: day01
 * @Package: amqp.publisher
 * @ClassName: ArrayInsert
 * @Author: Vector
 * @Date: 2021/12/14 14:21
 * @Description: Classes  Default Description
 */
public class ArrayInsert {

   /**
    *  定义原始数组
    */
   private  static int [] inItArr = {99,85,82,63,60};

   public static void main(String[] args) {
      boolean enable = false;
      do {
         System.out.println("请输入新成绩:");
         Scanner inScores = new Scanner(System.in);
         int inScore = inScores.nextInt();
         System.out.println("插入成绩的下标是:");
         Scanner inSubScript = new Scanner(System.in);
         int inIndex = inSubScript.nextInt();
         int[] ints = updateArr(inItArr, inScore, inIndex);
         System.out.println("插入后的成绩信息是:");
         for (int i : ints) {
            System.out.print(i + "\t");
         }
         System.out.println("\n"+"是否继续:");
         Scanner enabled = new Scanner(System.in);
         enable = enabled.nextBoolean();
          }while (enable);
   }

   /**
    *
    * @param inItArr 初始数组
    * @param inScore 需要存入的成绩数值
    * @param inIndex 需要存入成绩的下标
    * @return 新数组
    */
   private static int [] updateArr(int [] inItArr,int inScore,int inIndex){

      int [] newArr = new int[inItArr.length+1];
      //如果插入的下标是0
      if (inIndex == 0){
         newArr[0] = inScore;
         for (int i = 1; i < newArr.length; i++) {
            for (int j = 0; j < inItArr.length; j++) {
                    if (j == i-1){
                        newArr[i] = inItArr[j];
                    }
            }
         }
      }
      //如果插入的下标大于等于原数组索引长度
      else if (inIndex>=newArr.length-1){
         for (int i = 0; i < newArr.length; i++) {
            for (int j = 0; j < inItArr.length; j++) {
               if (i==j){
                  newArr[i] = inItArr[j];
               }
            }
         }
         newArr[newArr.length-1] = inScore;
      }
      //如果插入的下标在0和最大索引长度之间
      else {
        //截取数组
         for (int i = 0; i < newArr.length; i++) {
            for (int j = 0; j < inItArr.length; j++) {
               if (inIndex == i){
                  newArr[i] = inScore;
                  continue;
               }else if (i>inIndex){
                  newArr[i] = inItArr[i-1];
                  continue;
               }else if (i<inIndex){
                  newArr[i] = inItArr[i];
                  continue;
               }
            }
         }

      }
      return newArr;
   }
}

基本满足需求

爱笑爱生活xy 2021-12-14
  • 打赏
  • 举报
回复

说是请输入,那就是先来个Scanner,然后要输下标,题目上又说要比较,那就是将这个数插入到对应的下标之前,大概就这样,先敲了再说

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧