2017-02-12 8 views
-1

配列を完全に理解することは遠く離れており、実際にはこれで苦労しています。ここに問題があります:私は整数の配列を操作する必要があります。私のプログラムは2つの値をカンマで区切ります。最初の値は配列のサイズで、2番目の値は変換のタイプです。配列のサイズを表す定数MAXSIZEを定義し、0からMAXSIZEの値を含むように初期化されます。入力に基づいて、プログラムは各変換を印刷する必要があります:半分、二重、絶対、累積。私は自分のコードが事例のメソッドにさえ達していないと思う。私のコードの最後の2行は何らかの理由でフォーマットされたくないので、return arrayListで終わります。配列変換

public class Game { 

    public static void main(String[] args) { 

    Scanner input = new Scanner(System.in); 
    input.useDelimiter("[,\n]"); 
    System.out.println("Enter size of array and case, separated by comma: "); 

    final int MAXSIZE = input.nextInt(); 
    String transformation = input.next(); 
    int arrayList[] = new int[MAXSIZE +1]; 
    for (int i = 0; i < arrayList.length; i++) { 
      arrayList[i] = i; 
     } 

    for(int i = 1; i<arrayList.length; i++) { 
      System.out.print(arrayList[i] + "\n"); 
    } 
    System.out.print(transformation); 

    cases(transformation, arrayList); 

    } 

    public static void caseDouble(String transformation, int[] arrayList) { 
      for(int i = 1; i<arrayList.length; i++) { 
       arrayList[i] = arrayList[i]*2; 
      } 
      for(int i = 1; i<arrayList.length; i++) { 
       System.out.print(arrayList[i] + "\n"); 
     } 

    } 
    public static void caseAccumulate(String transformation, int[] arrayList) { 
      int total = 0; 
      for (int i = 1; i<arrayList.length; i++) { 
       total += arrayList[i]/arrayList.length; 
       System.out.println(arrayList[total]); 
      } 
     } 
    public static void caseAbsolute(String transformation, int[] arrayList) { 
     for(int i = 1; i<arrayList.length;i++) { 
      System.out.print(Math.abs(arrayList[i])); 
     } 
    } 
    public static void caseHalve(String transformation, int[] arrayList) { 
     for(int i = 1; i<arrayList.length;i++) { 
      System.out.print(arrayList[i]/2); 
     } 
    } 

    public static int[] cases(String transformation, int[] arrayList) { 
     switch(transformation) { 
     case "absolute": 
      caseAbsolute(transformation, arrayList); 
       break; 
     case "halve": 
      caseHalve(transformation, arrayList); 
       break; 
     case "accumulate": 
      caseAccumulate(transformation, arrayList); 
       break; 
     case "double": 
      caseDouble(transformation, arrayList); 
+0

質問はありません。 – user3437460

+0

私のコードで何が間違っていますか?なぜそれは働いていないのですか?何を変更すべきかに関する提案? –

+0

ようこそスタックオーバーフロー! [ツアー]を見て回り、[ヘルプ]、特に[*どのように良い質問をしますか?*](/助け/やり方) –

答えて

0

入力を行うときにコンマと変換名の間にスペースを入れないでください。

など。 タイプ 10,absolute の代わり 10, absolute

+0

ああ、ありがとう。だから私のケースダブルは正しいですし、私は自分のケースを固定しました。ありがとうありがとう! –