現在、Windowsでセットアップするのが最も簡単なTCCを使用しています。解凍するだけで、準備が整います。しかし、私は他のコンパイラ、GCC、マイクロソフトが提供しているものなどを受け入れています。
私の問題は、サイズ16の整数配列への入力を検証する必要があることです。これが私のルールです:
if number is under 15 (including negative values) then input is valid
if number is under -2147483648 then -2147483648
if number is over 2147483647 then 15
else if number is over 15 then mod 16
if the number is a decimal, remove decimal point and validate again
私がCを使用していることを考えると、最後のポイントは私を怖がらせます、そして私は後でそれに戻ります。今のところ、私は最初の4つの条件を処理しようとしています。
私が遭遇している問題は、外側の境界をテストしようとすると、整数のオーバーフローが発生し、チェックが台無しになることです。そこで、検証のために入力を保持するために、longlongの一時配列を作成しました。すべてが正常に検証された瞬間に、整数の配列に収まるはずなので、(どういうわけか)long longを一時配列から実際の配列にコピーして、通常どおりプログラムを開始します。
私は長い間いじってやりたいことをやろうとしましたが、私のコードは速く乱雑になり、Cではすべてが非常に曖昧でマシンに依存しているので、何かがうまくいかないときはそれが私と私のくだらないコーディング、または私のマシンが他のすべてのマシンとは異なるという事実がエラーの原因となっています。この種のことは調査して解決できることを知っているので、私はそれに固執するつもりですが、あまり時間を無駄にしたくないので、SOに尋ねてショートカットがあるかどうかを確認します。
10進数の検証の部分私はアプローチの仕方についてさまざまなアイデアを持っていますが、私は希望がありません。あなたの意見は何ですか?
私がこれを行っている理由を知りたい人は誰でも:問題ではありません。この配列を必要とする高レベルの問題を非常に簡単に解決でき、すべての有効な入力で機能します。しかし、私は今ちょうど衒学者であるため、この質問です。