簡體   English   中英

嘗試同時找到平均“ n”個用戶輸入時嘗試查找最小和最大值時出錯

[英]Error with trying to find Min&max when also finding average of “n” number of user inputs

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的新手,更不用說編程了。

對於第一部分,我建議您使用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);

現在工作正常。 我做了一些更改。 請考慮一下。 希望對您有所幫助。

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

}
}

這是輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM