|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.09.2018, 16:06 | #1 |
Пользователь
Регистрация: 10.09.2018
Сообщений: 43
|
Оцените, пожалуйста, данный код.
Добрый день, программисты.
Только что выполнил одно упражнение из книги Стивена Прата (глава 6, упр.5). упр 5.png Код работает, но, так как я совсем недавно начал заниматься изучением программирования, подозреваю, что выполнил задание через пень колоду. Оцените, пожалуйста, наверняка найдете какие-нибудь лишние телодвижения в коде. Код:
|
12.09.2018, 16:31 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
У переменных странные имена, "номер слова"? Если это число слов, то лучше wordsCount (или wordCount) и т.п., я правда не увидел в задании ничего про слова, и про ключи.
И обычно используют camelCase вместо _, это ж как минимум удобнее писать. Так тоже норм, главное в одном стиле, просто не помню когда последний раз видел _ в именах переменных (кроме констант капсом). В некоторых языках есть общепринятый стиль кода, но С не из их числа, у всех свой. https://ru.hexlet.io/blog/posts/naming-in-programming И в современных стандартах С (с С99) можно объявлять переменные в любом месте, например Код:
Вместо 64 лучше писать 'A' или что там это. Ну и вообще магические числа зло, лучше заводить константы и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 12.09.2018 в 17:25. |
13.09.2018, 11:16 | #3 |
Пользователь
Регистрация: 10.09.2018
Сообщений: 43
|
Добрый день. Внес изменения в код согласно рекомендациям.
Код:
Почитал статью, теперь "_" в переменных использовать не буду. Когда попытался объявить переменные "i" и "j" компилятор заругался, так что оставил как есть. К тому же вроде в этом нет ничего криминального? Насчет постпрефиксного и препрефиксного (ин-)декрементирования: я читал, что в них есть разница, когда они являются частью какого-либо выражения. Они означают одно и то же, когда стоят обособленно. Или все же в данном случае разница есть? На магическое число "64" завел константу. Благодарю за советы. Последний раз редактировалось Sinli; 13.09.2018 в 11:19. |
13.09.2018, 11:31 | #4 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Зачем 64 вообще писать? В С символы это просто числа, можно просто 'A' - 1.
По умолчанию может быть включен С89 стандарт. В gcc/MinGW изменяется флагом --std=c99 Цитата:
++а изменяет и возвращает новое, а++ возвращает старое и изменяет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
13.09.2018, 12:23 | #5 | |
Пользователь
Регистрация: 10.09.2018
Сообщений: 43
|
Цитата:
Если сравнить эту часть кода: Код:
НО если сравнить, скажем, это: Код:
Вот последний вариант программы: Код:
|
|
13.09.2018, 12:28 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Я бы letterCount++ делал просто в отдельной строке без лишних скобок и +-1.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
13.09.2018, 12:29 | #7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Для современных компиляторов в релизе с оптимизациями и для "простых" типов пре или пост не имеет значение, компилятор это способен оптимизировать. Обычно все равно стараются их разделять, чтобы лишний раз не напрягать читающего ваш код и было сразу понятен замысел.
|
13.09.2018, 13:24 | #8 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
и даже не предупреждает программистов о возможных проблеммах. а почему? потому что год - говно. кстати, об это же сказал компилятор: Код:
|
|
13.09.2018, 15:13 | #9 | ||
Пользователь
Регистрация: 10.09.2018
Сообщений: 43
|
Цитата:
Цитата:
А насчет букв из кириллицы, то код писался для латинских букв, а русскую локаль я даже не подключал. |
||
13.09.2018, 16:14 | #10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну наверно имелось в виду, что надо было хотя бы уточнить это в описании при вводе.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите, что делает данный код | rogge | Помощь студентам | 1 | 03.12.2016 16:53 |
Как понять данный код? | SkyWay | Microsoft Office Excel | 1 | 12.02.2015 02:36 |
как правильно разбить данный код на 3 класса? | neomax38 | Общие вопросы по Java, Java SE, Kotlin | 1 | 25.11.2011 22:17 |
адаптировать данный код | 555shiro | Помощь студентам | 0 | 09.01.2010 17:50 |
Почему не работает данный код? C# | byte916 | Помощь студентам | 4 | 11.12.2009 21:19 |