プログラムは長いです(フルバージョンは次のとおりです:http://pastebin.com/cvg1eSJ1)、(sample.txtは次のようになります:http://pastebin.com/hWihPpSj、これはINPUTファイルであり、別のコマンドラインです引数は出力ファイルです。)しかし、私は「2番目のポインタリスト」を扱う部分を投稿しています。基本的に47ほどのアイテムのリストがあり、特定の範囲外のアイテムを2番目のリストに追加する必要があります。これは私が最初に値を保存する場所です。コードをクリーンアップするためだけに「tempAddress」を使用します。現在の住所の値を取得して確認し、一致する場合は2番目のリーディングリストに追加します。
for (i; i < numElements; i++) {
tempAddress = firstReadingList++;
if ((double) *tempAddress > plusOutlier || (double) *tempAddress < minusOutlier) {
*secondReadingList++ = *tempAddress;
numOutliers++;
printf("%d ", *tempAddress);
}
}
後で、この読み取りリストを別の関数でファイルに書き込む必要があります。値を出力しましたが、最後の値だけが正しくありません。理由はわかりません。これが私がそれらをファイルに書き込むコードです(この場合、tempAddressは新しい変数です)
for (i; i < numElements; i++) {
tempAddress = (outlierList + i);
printf("%d ", *tempAddress);
fprintf(out, "%d ", *tempAddress);
}
最初の関数の出力は次のとおりです。
752 843 840 848 752 850 753(これは正しいです)
2番目のコードsnippitはこれを出力します
752 843 840 848 752 850 577(577は正しくありません)
私は何か間違ったことをしましたか?私はまだポインタに比較的慣れていません。関数間のどの時点でもsecondListPointerを変更しません。