0

このファイル内に最大数と最小数を印刷する必要があります...すべてを試しましたが、機能しないようです。私は初心者です助けてください

public class Banck {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        System.out.println("Welcome to JEEEZBANK");

        final int NUM_TO_QUIT = -99;

        String userin ;
        int num;

        System.out.println("Enter a file ending with .txt");
        Scanner scan = new Scanner(System.in);
        userin = scan.nextLine();

        // create file
        PrintWriter file = new PrintWriter(userin);

        for(int i=1; i<5; i++){
            System.out.println("enter first number "+i +" or -99 to quit");
            num = scan.nextInt();
            if(num == NUM_TO_QUIT){
                System.out.println("bye");
                System.exit(0);
            }
            file.println(num);

        }
        file.close();
        // read file and print smallest and biggest number
        Scanner read = new Scanner(file);
        while(read.hasNext()){

            // add the numbers to the array 
            int[] numlist = {num};
            // print the biggest and smallest number inside the numlist array.
        }
    }
}
4

2 に答える 2

2

1つの方法は、2つの変数を作成し、1つは現在の最小数を追跡し、もう1つは現在の最大数を追跡することです。ファイル内のすべての数値について、現在の最小の数値よりも小さいかどうかを比較します。その場合は、それを置き換えるか、現在の最大の数値よりも大きいかどうかを比較します(その場合は置き換えます)。

最小数と最大数は同じ数であると推測されるため、ユーザーが入力しているときに、個別のループを使用する代わりに、実際に比較して探すことができます。

于 2013-03-10T04:30:41.610 に答える
1

リストを保持しないでください。2 つの変数を使用して、最大と最小を追跡します。

int min = Integer.MAX_VALUE;

int max = 0;

if(num < min) min = num;

if(num > max) max = num;

numが上記のループでファイルから読み取られる整数であると仮定します。

于 2013-03-10T04:33:15.360 に答える