web-dev-qa-db-ja.com

入力した一連の数値から最大値と最小値を取得するにはどうすればよいですか?

以下は私がこれまでに持っているものです:

0を最小値として除外する方法はわかりません。割り当ては、出口番号として0を要求するため、0以外の最小の数値をmin文字列に表示する必要があります。何か案は?

int min, max;

Scanner s = new Scanner(System.in);
System.out.print("Enter a Value: ");
int val = s.nextInt();
min = max = val;

while (val != 0) {
  System.out.print("Enter a Value: ");
  val = s.nextInt();
  if (val < min) {
      min = val;
  }
  if (val > max) {
     max = val;
  }
};
System.out.println("Min: " + min);
System.out.println("Max: " + max);
3
user2934299

次のように最大値を追跡するだけです。

int maxValue = 0;

次に、数値を繰り返し処理しながら、maxValueがmaxValueより大きい場合は、maxValueを次の値に設定し続けます。

if (value > maxValue) {
    maxValue = value;
}

MinValueに対して反対方向に繰り返します。

3
MattSenter

これが可能な解決策です:

public class NumInput {
  public static void main(String [] args) {
    int min = Integer.MAX_VALUE;
    int max = Integer.MIN_VALUE;

    Scanner s = new Scanner(System.in);
    while (true) {
      System.out.print("Enter a Value: ");
      int val = s.nextInt();

      if (val == 0) {
          break;
      }
      if (val < min) {
          min = val;
      }
      if (val > max) {
         max = val;
      }
    }

    System.out.println("min: " + min);
    System.out.println("max: " + max);
  }
}

(intまたはdouble thinkの使用については不明)

2
Maxime Chéramy

それはさらにいいです

public class Main {

    public static void main(String[] args) {

        System.out.print("Enter numbers: ");
        Scanner input = new Scanner(System.in);

        double max = Double.MIN_VALUE;
        double min = Double.MAX_VALUE;

        while (true) {

            if ( !input.hasNextDouble())
                break;

            Double num = input.nextDouble();

            min = Math.min(min, num);
            max = Math.max(max, num);

        }
        System.out.println("Max is: " + max);
        System.out.println("Min is: " + min);
    }
}
2
gadolf

ここでは、次のようにint 0をスキップする必要があります:

val = s.nextInt();
  if ((val < min) && (val!=0)) {
      min = val;
  }
1
newbie

これは私がやったことであり、うまくいきます。合計、平均、最小、最大を計算します。

public static void main(String[] args) {
   int[] score= {56,90,89,99,59,67};
   double avg;
   int sum=0;
   int maxValue=0;
   int minValue=100;

   for(int i=0;i<6;i++){
       sum=sum+score[i];
   if(score[i]<minValue){
    minValue=score[i];
   }
   if(score[i]>maxValue){
    maxValue=score[i];
   }
   }
   avg=sum/6.0;
System.out.print("Max: "+maxValue+"," +" Min: "+minValue+","+" Avarage: "+avg+","+" Sum: "+sum);}

 }
1
Zuko Khephu
//for excluding zero
public class SmallestInt {

    public static void main(String[] args) {

        Scanner input= new Scanner(System.in);

        System.out.println("enter number");
        int val=input.nextInt();
        int min=val;

        //String notNull;

        while(input.hasNextInt()==true)
        {
            val=input.nextInt();
            if(val<min)
                min=val;
        }
        System.out.println("min is: "+min);
    }
}
1
Malav Shelat
System.out.print("Enter a Value: ");
val = s.nextInt();

この行は最後に配置されます。コード全体は次のとおりです。

public static void main(String[] args){
    int min, max;

    Scanner s = new Scanner(System.in);
    System.out.print("Enter a Value: ");
    int val = s.nextInt();
    min = max = val;

    while (val != 0) {
        if (val < min) {
            min = val;
        }
        if (val > max) {
            max = val;
        }
        System.out.print("Enter a Value: ");
        val = s.nextInt();

    }
    System.out.println("Min: " + min);
    System.out.println("Max: " + max);
}
0