В настоящее время я использую TCC, так как проще всего настроить Windows. Просто распакуйте и вы готовы к работе. Тем не менее, я открыт для других компиляторов, GCC, для любых предложений Microsoft и т. Д.
Моя проблема в том, что мне нужно проверить входные данные в массиве целых чисел размера 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 условиями.
Проблема, с которой я сталкиваюсь, состоит в том, что попытка проверить на наличие внешних границ приводит к переполнению целых чисел и испортит мои проверки. Итак, я сделал временный массив длинных длинных для хранения входных данных в целях проверки. В тот момент, когда все успешно проверено, оно должно уместиться в массиве целых чисел, поэтому я (каким-то образом) скопирую long long из массива temp в реальный и запустите программу как обычно.
Я бездельничал и пытался делать то, что хотел, но мой код быстро запутывался, и все в C так расплывчато и зависело от машины, поэтому, когда что-то идет не так, я не знаю, так ли это я и мой дерьмовый код, или тот факт, что моя машина отличается от всех остальных, что вызывает ошибку. Я буду придерживаться этого, потому что я знаю, что такого рода вещи можно исследовать и решать, однако я не хочу тратить на это слишком много времени, поэтому я спрошу об этом и посмотрю, есть ли ярлык.
Десятичная часть проверки. У меня есть разные идеи о том, как подойти, но я не надеюсь. Каково ваше мнение?
Любой, кто хочет знать, почему я это делаю: не имеет значения, я могу решить проблему более высокого уровня, которая требует этот массив довольно легко, и он будет работать для всех допустимых входных данных. Однако сейчас я просто педантичен, отсюда и этот вопрос.