簡體   English   中英

返回數組方法

[英]Returning Array Method

我不清楚這要求我做什么,以及我如何執行它,參考int [] copyAndReplaceLessThan(int []a, int b)方法。 任何幫助將不勝感激,謝謝。

任務:

在 main.c 中測試此方法。 打印原始數組和方法 copyAndReplaceLessThan 返回的返回數組。 由於此方法返回一個值(整數數組),因此您需要在調用方法 (main) 中的局部變量(int [] 類型)中“捕獲”返回值。

例如:假設您將數組“x”傳遞給方法並使用數組“y”來捕獲返回值。 在調用方法之前打印 x,然后在調用方法之后打印 x 和 y。

 public class ArrayExamples{
  public static void swapInts(int a, int b){  
    int temp;
    temp = a;
    a = b;
    b = temp;
}
public static void swapIntArrays(int [] a, int [] b){

   int x;
   for (int i=0; i<a.length; i++){
   x = a[i];
   a[i]=b[i];
   b[i]=x;

}
}
public static void printArray(int[] a){
   for(int i = 0; i < a.length; i++)
   {
    System.out.print(a[i] + " ");
   }
   System.out.println("");

}

public static void main(String args[]){

   int [] one ={3,4};
   int [] two ={7,8};
   printArray(one);
   printArray(two);
   swapIntArrays(one,two);
   printArray(one);
   printArray(two);
   System.out.println();

   int [] x ={3,45,17,2,-1,44,9,23,67,2,-6,-23,-100,12,5,1212};
   int b = 12;
   printArray(x);
   replaceLessThan(x,b);
   printArray(x);


   printArray(x);
   copyAndReplaceLessThan(x,b);
   printArray(x);
   printArray(y);


}

public static void replaceLessThan(int []a, int b){ 
  for(int i=0; i < a.length; i++){
    if(a[i] < b){
       a[i] = b;
    }
    else{
       a[i] = a[i];
    }
   }
}
public static int[] copyAndReplaceLessThan(int []a, int b){
  int []x = a;
  int[]y = x;

  for(int i=0; i < a.length; i++){
    if(a[i] < b){
      a[i] = b;
      y[i] = b;
    }
    else{
      a[i] = a[i];
      y[i] = a[i];
    }
    }
return y;
}
}

一些問題:

您應該保持原始數組不變,但您將其元素設置為

a[i] = b;

這樣做毫無意義

a[i] = a[i];

因為您只是將值重置為自身。

但是你最大的問題是你沒有像你應該的那樣創建一個新數組。 相反,您的“新”數組 ( y ) 指的是原始數組 ( a ),因此對y任何更改實際上都是在原始數組中進行的。

我還建議你要么測試或嘗試anull湖。

public static int[] copyAndReplaceLessThan(int[] a, int b)
{
    int[] x = a.clone();

    for (int i = 0; i < x.length; i++)
    {
        if (x[i] < b)
        {
            x[i] = b;
        }
    }
    return x;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM