2016-04-19 11 views
-3
public static void main (String[] args) { 
    Scanner input = new Scanner(System.in); 
    int[] array = new int[5]; 
    System.out.print("Please enter five numbers. \na="); 
    array[0] = input.nextInt(); 
    System.out.print("\nb="); 
    array[1] = input.nextInt(); 
    System.out.print("\nc="); 
    array[2] = input.nextInt(); 
    System.out.print("\nd="); 
    array[3] = input.nextInt(); 
    System.out.print("\ne="); 
    array[4] = input.nextInt(); 
    boolean totalIsZero = false; 
    for (int i=0;i<array.length ;i++) { 
     for (int j=1;i>j ;j++) {  
      if ((array[i] + array[j])==0) { 
       System.out.println("The numbers " + array[i] + " and " + array[j] + " have a total sum equal to 0."); 
       totalIsZero = true; 
      } 
     } 
    } 
    if (!totalIsZero) { 
     System.out.print("None of the numbers have a total sum of 0 with each other. "); 
    } 
} 

ここに私が書いた簡単なコードがあります。そのタスクは、配列内の2つの数字の合計(5つの数字からなる)がゼロに等しいかどうかをチェックすることです。予期せぬ回数のループ印刷の場合

問題は、2つの数字のペアが両方とも0に等しい場合、プログラムの最後には、両方のためのものではなく、どちらか一方のためのメッセージがあります。

これを修正するにはどうすればよいのでしょうか?ユーザーは2組の数字が0に等しいことを読むことができますか?

+1

また、コードのフォーマットを改善しますか? – karina

+0

@karinaコードの書式設定の問題は何ですか?初めてここに投稿を書く。 – Borislava

+0

@Borislava複数行のコードスニペットにバッククイックを使用しないでください - スニペットを選択してCtrl + Kを押してください(あなたの投稿は編集されたばかりです)。 – bcsb1001

答えて

0

私はそれをテストしていないと私はしばらくの間、javaを使用していないが、あなたのポストでそれを行うのと同じ方法で配列を作成しますが、実際の関数の大部分

// various input calls above^ to create array 
int count = 0; 
for(int i = 0; i < array.length; i++) 
{ 
    for(int j = i + 1; j < array.length; j++) 
    { 
     if(array[i] + array[j] == 0) 
     { 
      System.out.println("The numbers " + array[i] + " and " + 
           array[j] + 
           " have a sum equal to zero."); 
      count++; 
     } 
    } 
} 

if(count == 0) 
{ 
    System.out.println("No sum between any numbers is equal to 0"); 
} 
+0

ありがとうございます! – Borislava

+0

私はちょうど私があなたに示した同じメソッドでテストするためにPythonでテストしました(私はPythonがテストする方が速いと思います)。 – Connor

+0

それは機能しましたか?もしこの質問に答えがある場合は – Connor

関連する問題