2017-08-17 8 views
0
package HW2_Min_Max; 

import java.util.Scanner; 

public class HW2_Min_Max { 

    public static void main(String[] args) { 

     Scanner myScanner = new Scanner(System.in); 

     System.out.println("Please input a positive interger that indicates number of positive intergers "); 

     int number = myScanner.nextInt(); 

     while (number <= 0) { 
      System.out.println("Please input interger"); 
      number = myScanner.nextInt(); 
     } 

     int i=1; //i is to store current iteration 
     int sum=0; //sum is to store sum of the input 
     int x; //x is to store the user input 

     while (i <= number){ 
      System.out.println("Please input a positive interger "); 
      x = myScanner.nextInt(); 
      sum = sum + x; 
      i++; 
     } 
     int average = sum/number; 

     System.out.println("The average is " + average); 

     int max = Integer.MIN_VALUE; 
     int min = Integer.MAX_VALUE; 

     if (number < min){ 
      min = number; 
     } 

     if (number > max) { 
      max = number; 
     } 
     System.out.println("The minimum value is " + min); 
     System.out.print("and the maximum value is" + max); 
     } 
    } 
} 

1.^c'est là où je reçois mon problème, sur la dernière accolade dans Netbeans Je reçois une erreur qui dit "class, interface, ou enum expected" mais je ne sais pas pourquoi. Excusez mon ignorance comme je suis un débutant très frais avec Java, encore moins la programmation.Erreur à essayer de trouver min et max en moyenne trouver aussi du nombre « n » des entrées utilisateur

+1

Il semble que la dernière accolade ne soit pas nécessaire du tout. Rappelez-vous que le nombre de '{' devrait être égal au nombre de '}', vous voulez vous assurer que chaque accolade que vous ouvrez est finalement fermée. – dat3450

+0

Une indentation correcte et cohérente est votre ami. –

+0

Ok, alors cela a résolu le problème de me laisser exécuter le code, mais j'ai un problème avec ma sortie réelle? Je saisis 5 entiers positifs, la moyenne sort toujours à droite, mais les sorties pour le max et le min sortent fausses, je ne sais pas pourquoi? –

Répondre

-1

Cela fonctionne bien maintenant. J'ai fait quelques changements dedans. Veuillez le considérer. J'espère que cela aiderait.

Scanner myScanner = new Scanner(System.in); 

    System.out.println("Please input a positive interger that indicates number of positive intergers "); 


    int number = myScanner.nextInt(); 

    while (number <= 0) { 
     System.out.println("Please input interger"); 
     number = myScanner.nextInt(); 
    } 
    int[] arr = new int[number]; // Store values in array 
    int i=0; //i is to store current iteration 
    int sum=0; //sum is to store sum of the input 
    int x; //x is to store the user input 
    int max = 0; 
    int min = 0; 
     for(i=0;i<number;i++){ 
     System.out.println("Please input a positive interger "); 
     arr[i] = myScanner.nextInt(); 
     sum = sum + arr[i]; 

    } 
    int average = sum/number; 

    System.out.println("The average is " + average); 

    // Put initial values in min and max for comparing 
    min =arr[0]; 
    max = arr[0]; 
for(i=1;i<number;i++) 
{ 
    // Compare if values is less than arr[i] 
    if (arr[i] < min){ 
     min = arr[i]; 
    } 
// Compare if values is greater than arr[i] 
    if (arr[i] > max) { 
     max = arr[i]; 
    } 
} 
    System.out.print("The minimum value is " + min); 
    System.out.println(" and the maximum value is " + max); 

} 
} 

est ici la sortie:

enter image description here

0

Pour la première partie, je vous suggère d'utiliser une boucle do-while pour tester le nombre de numéros. Comme,

int number; 
do { 
    System.out.println("Please input a positive integer that " 
      + "indicates number of positive integers "); 
    number = myScanner.nextInt(); 
} while (number <= 0); 

Ensuite, vous devez définir min et maxdans votre boucle (ou stocker toutes les valeurs que vous lisez). Je préférerais Math.max et Math.min. Je voudrais également compter de 0. Like,

int i = 0; // i is to store current iteration 
int sum = 0; // sum is to store sum of the input 
int x; // x is to store the user input 
int max = Integer.MIN_VALUE; // store the max user input 
int min = Integer.MAX_VALUE; // store the min user input 
while (i < number) { 
    System.out.println("Please input a positive integer "); 
    x = myScanner.nextInt(); 
    if (x > 0) { // make sure it's a positive integer 
     min = Math.min(min, x); 
     max = Math.max(max, x); 
     sum += x; 
     i++; 
    } 
} 
int average = sum/number; 
System.out.println("The average is " + average); 
System.out.println("The minimum value is " + min); 
System.out.println("and the maximum value is " + max);