2016-07-01 14 views
0

私は、ユーザーの入力を受け取り、最大、最小、および平均を計算するプログラムを持っています。ユーザーが負の数を入力すると、プログラムは終了します。平均計算から負の数をどのように除外するのですか?ここに私がこれまで持っていたものがあります。whileループの平均計算から負の数を除外する方法

// variable 
    double n = 1; 
    double ave = 0; 
    double sum = 0; 
    double max = Double.MIN_VALUE; 
    double min = Double.MAX_VALUE ; 
    int count = 0; 
    double neg; 

//creat scanner object 
Scanner input = new Scanner(System.in); 


//loop 
while (n > 0) { 

System.out.print("Input an income (any negative number to quit): "); 
n = input.nextDouble(); 

sum = sum + n; 
count++; 
ave = sum/count; 

if(n<0) neg = n; 
if(n>max && n >= 0) max = n; 
if(n<min && n >= 0) min = n; 
if(n>0) ave = n; } 


    System.out.print(" Average " + ave + "\n Maximum " + max + "\n Minimum " + min); 

} 

}

+0

を。あなたは何をしていますか? – shmosel

+1

'break'キーワードを見てください。 – npinti

答えて

1

if状態入れる:

n = input.nextDouble(); 

if(n < 0) 
    break; 

sum = sum + n; 
+0

さて、 'while(n> 0)'は無意味です。 – shmosel

+0

なぜそうですか?入力が正になるまでループし続けます。 – Azodious

+0

'while(true)'もそうです。あなたが 'n == 0'を打ち破ろうとしていない限り、これは間違っているようです。 – shmosel

0

nが負でない場合、次のコードは、唯一の入力数字を合計します。

import java.util.Scanner; 

public class sample { 
    public static void main(String[] args) { 
     double n = 1; 
     double ave = 0; 
     double sum = 0; 
     double max = Double.MIN_VALUE; 
     double min = Double.MAX_VALUE; 
     int count = 0; 
     double neg; 

     Scanner input = new Scanner(System.in); 
     // loop 
     while (n > 0) { 

      System.out.print("Input an income (any negative number to quit): "); 
      n = input.nextDouble(); 
      if(n >= 0){ 
       sum = sum + n; 
       count++; 
      } 
      if (n < 0) 
       neg = n; 

      if (n > max && n >= 0) 
       max = n; 
      if (n < min && n >= 0) 
       min = n; 
      if (n > 0) 
       ave = n; 
     } 

     System.out.print(" Average " + ave + "\n Maximum " + max 
       + "\n Minimum " + min); 
    } 
} 
0

これを試してみてください:私はあなたが `if`を使用する方法を知っていることがわかり

double n = 1; 
double ave = 0; 
double sum = 0; 
double max = Double.MIN_VALUE; 
double min = Double.MAX_VALUE ; 
int count = 0; 

// create scanner object 
Scanner input = new Scanner(System.in); 

// loop until n is negative 
while (n >= 0) { 
    System.out.print("Input an income (any negative number to quit): "); 
    n = input.nextDouble(); 

    if (n >= 0) { 
     if (n > max) max = n; 
     if (n < min) min = n; 
     sum = sum + n; 
     count++; 
    } 
} 

if (count > 0) 
    ave = sum/(double) count; 

System.out.print(" Average " + ave + "\n Maximum " + max + "\n Minimum " + min); 
関連する問題