错误与试图找到最小和最大时,也发现“n”数量的用户输入的平均值

问题描述:

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. ^这是我得到我的问题,在Netbeans的最后一个大括号我得到一个错误,说: “类,接口或枚举的预期”,但我不知道为什么。请原谅我的无知,因为我是一个非常新鲜的java初学者,更不用说编程了。错误与试图找到最小和最大时,也发现“n”数量的用户输入的平均值

+1

它似乎最后的大括号并不是必需的。请记住,'{'的数量应该等于'}'的数量,您希望确保您打开的每个大括号最终都会关闭。 – dat3450

+0

正确,一致的缩进是你的朋友。 –

+0

好了,以便解决让我运行代码的问题,但是我的实际输出出现了问题?我输入5个正整数,平均值总是正确的,但最大值和最小值的输出出错了,我不知道为什么? –

现在工作的很好。我做了一些改变。请考虑一下。我希望这会有所帮助。

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

} 
} 

这里是输出:

enter image description here

在第一部分,我会建议你使用do-while循环,以测试号码的数量。像,

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

然后,你需要设置minmax你的循环(或存储所有读取的值)。我宁愿Math.maxMath.min。我也会从0算起。像,

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