История изменений
Исправление kaldeon, (текущая версия) :
Во-первых, зачем здесь битовая арифметика? Это решение точно сможет сгенерировать более эффективный код, чем оптимизирующий компилятор?
В-вторых, думающий облачный DeepSeek смог восстановить условие задачи по коду:
The program reads lines from standard input, converts each to an unsigned integer, and counts how many satisfy:
The number is less than 4096 (no bits set above bit 11).
Its lowest nibble (bits 0–3) equals 12 (hex digit C).
Its third nibble (bits 8–11) is non‑zero.
In other words, it counts numbers in the range 256–4095 whose hexadecimal representation ends with C. It prints the total count.
В-третьих:
main.c:4:9: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
Потому что Си - неправильный выбор языка в качестве введения в программирование 1.
a) это сложная или легкая задача для 9 класса?
Сложная, поскольку требует интеграции многих областей: системы счисления, битовая арифметика, немного IO, размеры типов.
с) а если для взрослого программиста, моё решение легко понять сходу или нет?
Принцип условия по битовой маске я быстро понял, но детали долго додумывал. Мне изначально показалось, что решение неправильное, потому что число 4380 (0x111C) не учитывается, но я не заметил, что считать требуется только трёхзначные числа.
Тут ещё были сообщения о том, что за такое решение нужно поставить 4, а не 5. Я не согласен. Здесь очевидная 5 даже не смотря на преждевременную оптимизацию. Просто за пытливость ума 5, что на этапе обучения намного важнее формального соответствия ожиданиям.
Исправление kaldeon, :
Во-первых, зачем здесь битовая арифметика? Это решение точно сможет сгенерировать более эффективный код, чем оптимизирующий компилятор?
В-вторых, думающий облачный DeepSeek смог восстановить условие задачи по коду:
The program reads lines from standard input, converts each to an unsigned integer, and counts how many satisfy:
The number is less than 4096 (no bits set above bit 11).
Its lowest nibble (bits 0–3) equals 12 (hex digit C).
Its third nibble (bits 8–11) is non‑zero.
In other words, it counts numbers in the range 256–4095 whose hexadecimal representation ends with C. It prints the total count.
В-третьих:
main.c:4:9: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
Потому что Си - неправильный выбор языка в качестве введения в программирование 1.
a) это сложная или легкая задача для 9 класса?
Сложная, поскольку требует интеграции многих областей: системы счисления, битовая арифметика, немного IO, размеры типов.
с) а если для взрослого программиста, моё решение легко понять сходу или нет?
Принцип условия по битовой маске я быстро понял, но детали долго додумывал. Мне изначально показалось, что решение неправильное, потому что число 4380 не учитывается (0x111C), но я не заметил, что считать требуется только трёхзначные числа.
Тут ещё были сообщения о том, что за такое решение нужно поставить 4, а не 5. Я не согласен. Здесь очевидная 5 даже не смотря на преждевременную оптимизацию. Просто за пытливость ума 5, что на этапе обучения намного важнее формального соответствия ожиданиям.
Исправление kaldeon, :
Во-первых, зачем здесь битовая арифметика? Это решение точно сможет сгенерировать более эффективный код, чем оптимизирующий компилятор?
В-вторых, думающий облачный DeepSeek смог восстановить условие задачи по коду:
The program reads lines from standard input, converts each to an unsigned integer, and counts how many satisfy:
The number is less than 4096 (no bits set above bit 11).
Its lowest nibble (bits 0–3) equals 12 (hex digit C).
Its third nibble (bits 8–11) is non‑zero.
In other words, it counts numbers in the range 256–4095 whose hexadecimal representation ends with C. It prints the total count.
В-третьих:
main.c:4:9: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
Потому что Си - неправильный выбор языка в качестве введения в программирование 1.
a) это сложная или легкая задача для 9 класса?
Сложная, поскольку требует интеграции многих областей: системы счисления, битовая арифметика, немного IO, размеры типов.
с) а если для взрослого программиста, моё решение легко понять сходу или нет?
Принцип условия по битовой маске я быстро понял, но детали долго додумывал. Мне изначально показалось, что решение неправильное, потому что число 4380 не учитывается (0x111C), но я не заметил, что считать требуется только трёхзначные числа.
Тут ещё были сообщения о том, что за такое решение нужно поставить 4, а не 5. Я не согласен. Здесь очевидная 5 даже не смотря на преждевременную оптимизацию (пытаться переиграть оптимизирующий компилятор в 2026 году - задача со звёздочкой). Просто за пытливость ума 5, что на этапе обучения намного важнее формального соответствия ожиданиям.
Исправление kaldeon, :
Во-первых, зачем здесь битовая арифметика? Это решение точно сможет сгенерировать более эффективный код, чем оптимизирующий компилятор?
Потому что Си - неправильный выбор языка в качестве введения в программирование 1.
В-вторых, думающий облачный DeepSeek смог восстановить условие задачи по коду:
The program reads lines from standard input, converts each to an unsigned integer, and counts how many satisfy:
The number is less than 4096 (no bits set above bit 11).
Its lowest nibble (bits 0–3) equals 12 (hex digit C).
Its third nibble (bits 8–11) is non‑zero.
In other words, it counts numbers in the range 256–4095 whose hexadecimal representation ends with C. It prints the total count.
В-третьих:
main.c:4:9: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
a) это сложная или легкая задача для 9 класса?
Сложная, поскольку требует интеграции многих областей: системы счисления, битовая арифметика, немного IO, размеры типов.
с) а если для взрослого программиста, моё решение легко понять сходу или нет?
Принцип условия по битовой маске я быстро понял, но детали долго додумывал. Мне изначально показалось, что решение неправильное, потому что число 4380 не учитывается (0x111C), но я не заметил, что считать требуется только трёхзначные числа.
Тут ещё были сообщения о том, что за такое решение нужно поставить 4, а не 5. Я не согласен. Здесь очевидная 5 даже не смотря на преждевременную оптимизацию (пытаться переиграть оптимизирующий компилятор в 2026 году - задача со звёздочкой). Просто за пытливость ума 5, что на этапе обучения намного важнее формального соответствия ожиданиям.
Исходная версия kaldeon, :
Во-первых:
main.c:4:9: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
Потому что Си - неправильный выбор языка в качестве введения в программирование 1.
В-вторых, думающий облачный DeepSeek смог восстановить условие задачи по коду:
The program reads lines from standard input, converts each to an unsigned integer, and counts how many satisfy:
The number is less than 4096 (no bits set above bit 11).
Its lowest nibble (bits 0–3) equals 12 (hex digit C).
Its third nibble (bits 8–11) is non‑zero.
In other words, it counts numbers in the range 256–4095 whose hexadecimal representation ends with C. It prints the total count.
В-третьих, зачем здесь битовая арифметика? Это решение точно сможет сгенерировать более эффективный код, чем оптимизирующий компилятор?
a) это сложная или легкая задача для 9 класса?
Сложная, поскольку требует интеграции многих областей: системы счисления, битовая арифметика, немного IO, размеры типов.
с) а если для взрослого программиста, моё решение легко понять сходу или нет?
Принцип условия по битовой маске я быстро понял, но детали долго додумывал. Мне изначально показалось, что решение неправильное, потому что число 4380 не учитывается (0x111C), но я не заметил, что считать требуется только трёхзначные числа.
Тут ещё были сообщения о том, что за такое решение нужно поставить 4, а не 5. Я не согласен. Здесь очевидная 5 даже не смотря на преждевременную оптимизацию (пытаться переиграть оптимизирующий компилятор в 2026 году - задача со звёздочкой). Просто за пытливость ума 5, что на этапе обучения намного важнее формального соответствия ожиданиям.