web-dev-qa-db-fra.com

Comment puis-je obtenir les valeurs max et min à partir d'un ensemble de nombres saisis?

Voici ce que j'ai jusqu'à présent:

Je ne sais pas comment exclure 0 en tant que nombre min. L'affectation demande que 0 soit le numéro de sortie, j'ai donc besoin que le plus petit nombre autre que 0 apparaisse dans la chaîne min. Des idées?

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

Il vous suffit de garder une trace d'une valeur maximale comme celle-ci:

int maxValue = 0;

Ensuite, pendant que vous parcourez les nombres, continuez de définir maxValue à la valeur suivante si elle est supérieure à maxValue:

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

Répétez dans la direction opposée pour minValue.

3
MattSenter

Voici une solution possible:

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);
  }
}

(pas sûr d'utiliser int ou double pensée)

2
Maxime Chéramy

Il est préférable

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

ici, vous devez ignorer l'int 0 comme suit:

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

C'est ce que j'ai fait et cela fonctionne, essayez de jouer avec. Il calcule le total, la moyenne, le minimum et le maximum.

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();

Cette ligne est placée en dernier.Le code entier est le suivant: -

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
Abdullah Almasud