0

私のJavaの割り当ての1つは、ファイルから数値を取得し、それらを2つの配列に分離することです。P(正の数)とN(負の数)という名前の1つ。正の数に対しては機能していますが、負の数は0を出力し続けます。理由がわかりません!ヘルプ?

import java.io.*;
import java.util.*;

public class Prog404a {
    public static void main(String[] args) {
        Scanner inFile = null;
        try {
            inFile = new Scanner(new File("prg404a1.dat"));
        } catch (FileNotFoundException e) {
            System.out.println("File not found!!");
            System.exit(0);
        }
        int temp = 0;
        int P[] = new int[23];
        int N[] = new int[23];
        int i = 0;
        while (inFile.hasNext()) {
            temp = inFile.nextInt();
            if (temp < 0) {
                N[i] = temp;
            }
            if (temp > 0) {
                P[i] = temp;
            }
            i++;
        }
        for (int x = 0; x < i; x++) {
            System.out.println(P[x] + "\t" + N[x]);
        }
    }
}

編集:正の数でも機能しないことを気にしないでください。少ししか。

4

1 に答える 1

4

たぶんあなたは正しく数えていませんか?

2つのカウンターを使用する必要があります。1つは正の数用、もう1つは負の数用です。それ以外の場合、エントリの半分は明らかに0になります。これは、エントリが設定されていないためです。

于 2013-02-16T23:47:33.720 に答える