-1
テキストファイルの周波数テーブルの範囲を0から38までの周波数テーブルの範囲にするプログラムを作成しています。しかし、私がプログラムを実行するとき、それが< = 0または> = 10である数を含んでいれば、他のすべての数は加算されますが、負の数は数えられません。私の問題は私のIf文にあると思うが、私はそれを修正する方法を知らない。例えばテキストファイルから負数を数えて周波数テーブルを作成するときのエラー
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream abc("beef.txt");
int num;
int tem;
int N;
int noNum = 0;
cout << "Class" << " | " << "Frequency" << endl;
cout << "_________|___________" << endl;
while (abc >> tem) {
noNum++;
}
for (num = 0; num < 11; num++) {
N = 0;
while (abc >> tem) {
if (num == tem) {
N = N + 1;
}
if (tem < 0) {
N = N + 1;
}
if (tem > 10) {
N = N + 1;
}
}
abc.clear(); //clear the buffer
abc.seekg(0, ios::beg); //reset the reading position to beginning
if (num == 0) {
cout << "<=0" << " | " << N << endl;
}
else if (num == 10) {
cout << ">=10" << " | " << N << endl;
}
else {
cout << " " << num << " | " << N << endl;
}
}
cout << "The number of number is: " << noNum << endl;
}
がある場合は-5テキストに問題が二つあるthis
問題は何ですか?エラーが出ますか?クラッシュ、間違った結果? – Arash
テキストに-5がある場合、<= 0の頻度が1であることが示されていますが、代わりにプログラムは<= 0に0の頻度を、1つおきには1を表示します(画像に示されています) – neX