2012-03-01 12 views
-1

私はこのようなプログラムを構築しようとしています: ユーザは3つの数字を入力します。 システムは、ユーザが入力した値の小さい方から順に番号の昇順を出力します。 例:ユーザーが1を入力してから4を入力すると、中間値の数値である4を省略して1,2,3,5,6,7,8を出力します。 プログラムにこの番号を省略させるにはどうすればよいですか?シーケンスから中間の数値を削除するにはどうすればよいですか?

System.out.print("Enter a number: "); 
int n1 = Integer.parseInt(in.readLine()); 
System.out.print("Enter a number: "); 
int n2 = Integer.parseInt(in.readLine()); 
System.out.print("Enter a number: "); 
int n3 = Integer.parseInt(in.readLine()); 
int i = 0; 
if ((n1 > n2) && (n2 > n3)) { 
    for (i = n3; (i <= n1); i++) { 
     String o = i + ","; 
     System.out.print(o); 
    } 
} 
else if ((n1 > n3) && (n3 > n2)) { 
    for (i = n2; (i <= n1); i++) { 
     String o = i + ","; 
     System.out.print(o); 
    } 
} 
else if ((n2 > n3) && (n3 > n1)) { 
    for (i = n1; (i <= n2); i++) { 
     String o = i + ","; 
     System.out.print(o); 
    } 
} 
else if ((n2 > n1) && (n1 > n3)) { 
    for (i = n3; (i <= n2); i++) { 
     String o = i + ","; 
     System.out.print(o); 
    } 
} 
else if ((n3 > n2) && (n2 > n1)) { 
    for (i = n1; (i <= n3); i++) { 
     String o = i + ","; 
     System.out.print(o); 
    } 
} 
else if ((n3 > n1) && (n1 > n2)) { 
    for (i = n2; (i <= n3); i++) { 
     String o = i + ","; 
     System.out.print(o); 
    } 
} 
System.out.println("\n" + "The sum of the sequence is " + i); 

答えて

3

あなたは非常に複雑です。

3つの数字を入力して、3つの変数a,b、およびcで読むようにしてください。その後、forループを使用してaからcまで繰り返し、値がbの場合は印刷しないでください。

System.out.print("Enter a number: "); 
int a = Integer.parseInt(in.readLine()); 
System.out.print("Enter a number: "); 
int b = Integer.parseInt(in.readLine()); 
System.out.print("Enter a number: "); 
int c = Integer.parseInt(in.readLine()); 

for(int i = a; i < c; i++) 
{ 
    if(i != b) 
     System.out.println(i); 
} 

反復はあなたの人生を楽にします。

+0

が手伝ってくれてありがとう。 – user1215225

0

中位と中位が最も高い番号を見つけようとしている場合は、そして数字を中間の数字を出すリストとして表示します。あなたは巣に文に対して実際にN2または唯一の最高と最低と中間番号、N1を乗り切るする必要がないので、これがある if文

内部文に対するを持っていません。あなたがそれらの前に割り当てることができる中間変数を作成し、あなたがやっているようにif文の中にステートメントをネストしていない場合。

Infactは、あなたは、ifたstatmentsすべて一緒とMath.maxを(a、b)は(あなたは、Javaを使用している場合)を使用し、かつ、最高であるか、中、最低の数字を見つける前に、中間変数を使用して取り除くことができます。あなたはこのようないくつかの事しようとする場合があります

 System.out.print("Enter a number: "); 
     int n1 = Integer.parseInt(in.readLine()); 
     System.out.print("Enter a number: "); 
     int n2 = Integer.parseInt(in.readLine()); 
     System.out.print("Enter a number: "); 
     int n3 = Integer.parseInt(in.readLine()); 

     int higher1 = Math.max(n1, n2); 
     int lower1 = Math.min(n1, n2); 

     int lowest = Math.min(lower1, n3); 
     int highest = Math.max(higher1, n3); 

     int middle; 
     if (n3 < lower1) { 
      middle = lower1; 
     } else if (n3 > higher1) { 
      middle = higher1; 
     } else { 
      middle = n3; 
     } 

     System.out.println("The highest is: " + highest); 
     System.out.println("The middle is: " + middle); 
     System.out.println("The lowest is: " + lowest); 


     for (int count = lowest; count <= highest; count++){ 
      if (count != middle) { 
       System.out.println(count); 
      } 
     } 
関連する問題