題目是要實現對數組中的數據進行升序排序,然後用戶輸入1個數字,如果數組中有逐個數字就刪除,沒有就提示用戶沒有此數據。下面是我寫的,寫到後面就不會了,新手請教老師解答?謝謝! package homework; 
import java.util.Scanner; 
import java.util.Arrays; public class HomeText { 
  public static void main(String []args){ 
    Scanner input = new Scanner(System.in); 
    int Num [] = new int []{1,2,3,4,5,6,7,8,9,0};   
    Arrays.sort(Num); 
    System.out.println("数组数据按升序排列:"); 
    for(int i = 0;i<Num.length;i++){ 
      System.out.println(Num[i]); 
    } 
    System.out.println("\n请输入一个整数:"); 
    int No = input.nextInt(); 
    for(int i = 0;i<Num.length;i++){ 
      if(No == Num[i]){ 
        //这里不会删除数据了 
      }else{ 
            System.out.println("没有您要删除的数据。"); 
    } 
  } 

解决方案 »

  1.   

    while(i<输入的数)   
    {
    i++;        --其他代码就自己加了
    }
    是不是这个意思 用循环应该可以达到吧
    初学  共同进步
      

  2.   

    用List,不要用[] 实现,或者你把[]的内容设置为Integer.MIN_VALUE代表被删除了也不错。
      

  3.   

    给一个思路吧
    if(No == Num[i])
    {
      Num[i] == Num[i+1];
      这里需要数组长度减一个;
    }///////////////////////////////////////下面我做了一个修改
    package homework; 
    import java.util.Scanner; 
    import java.util.Arrays; public class HomeText { 
      public static void main(String []args){ 
        Scanner input = new Scanner(System.in); 
        int Num [] = new int []{1,2,3,4,5,6,7,8,9,0};  
        int ArrayLength = length.Num;
        Arrays.sort(Num); 
        System.out.println("数组数据按升序排列:"); 
        for(int i = 0;i <Num.length;i++){ 
          System.out.println(Num[i]); 
        } 
        System.out.println("\n请输入一个整数:"); 
        int No = input.nextInt(); 
        for(int i = 0;i <Num.length;i++){ 
         if(No == Num[i])
         {
            Num[i] == Num[i+1];
            ArrayLength -1;
         }
          else{ 
                System.out.println("没有您要删除的数据。"); 
        } 
      } 

      
      

  4.   

    这里给一个建议。如果我写,我会写一个Find() 方法,这个方法用来Return Index,这样就 可以简单实现,不需要
    把所有的代码都写在一个method 里面。
    这样,当你其他的程序,需要同样查找功能的时候 就很简单的用到了。 如果写这个作业,你的写法够了,但是以后写大
    点的程序,我这样的结构更容易使用一些。
      

  5.   

    刚刚的多打了个等号。这里修复一下。
    给一个思路吧 
    if(No == Num[i]) 

      Num[i] == Num[i+1]; 
      这里需要数组长度减一个; 
    } /////////////////////////////////////// 下面我做了一个修改 
    package homework; 
    import java.util.Scanner; 
    import java.util.Arrays; public class HomeText { 
      public static void main(String []args){ 
        Scanner input = new Scanner(System.in); 
        int Num [] = new int []{1,2,3,4,5,6,7,8,9,0};  
        int ArrayLength = length.Num; 
        Arrays.sort(Num); 
        System.out.println("数组数据按升序排列:"); 
        for(int i = 0;i <Num.length;i++){ 
          System.out.println(Num[i]); 
        } 
        System.out.println("\n请输入一个整数:"); 
        int No = input.nextInt(); 
        for(int i = 0;i <Num.length;i++){ 
        if(No == Num[i]) 
        { 
            Num[i] = Num[i+1]; 
            ArrayLength -1; 
        } 
          else{ 
                System.out.println("没有您要删除的数据。"); 
        } 
      } 
      

  6.   


    看上去好想符合我的作业要求,
      Num[i] == Num[i+1]; 
            ArrayLength -1; 
    这里数组长度减1就一定是减去的相同的哪个元素吗?
      

  7.   

    他说的和你说的属于2个领域的东西。其实严谨的说,他说说的是Java的数据结构部分。
    你学的应该是数组的部分吧。
      

  8.   


    其实,是这样的, 我把你找到的数的Index跳过去了,这样,你数组就少了一个数字,所以,你就需要把数组减去一个
    给你一个例子
    比如我输入2 , 2是在数组里的Index是 1, 我让3 的Index 直接等于了1 就把 2 这个元素跳过去了,你在纸上画一下
    就容易理解了。
      

  9.   

    不可以,因为,你数组中还是有元素。 只不过元素值是null罢了。
      

  10.   

     if(No == Num[i]) 
        { 
            Num[i] == Num[i+1]; 
            ArrayLength -1; //这一句为什么报错呢??ArrayLength是什么意思?和Num.length有什么关系?