|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.07.2009, 15:14 | #1 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 722
|
Оптимизация кода в си
Как то громоздко выходит.... как-нить можно запись сократить?
Код:
Последний раз редактировалось dampirik; 04.07.2009 в 15:28. |
05.07.2009, 03:52 | #2 |
Форумчанин
Регистрация: 16.04.2009
Сообщений: 247
|
Если надо выводить какие-то символы, то их можно вписывать в саму строку формата. Вместо
Код:
Код:
Код:
Вот сам код: Код:
Последний раз редактировалось megachuhancer; 05.07.2009 в 04:01. |
05.07.2009, 09:10 | #3 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 722
|
Спасибо, пошел анализировать)
Хм .. вот только это вот не понял... [CODE]strs2[(int)floor((double)a / 9)]); и ошибки идут от floor...пойду разбираться) спасибо за идею вроде так работает printf("%s %s\n", strs1[(a - 1) % 9], strs2[(a - 1) % 4]); спасибо) Последний раз редактировалось Stilet; 06.07.2009 в 10:51. |
06.07.2009, 09:42 | #4 |
Форумчанин
Регистрация: 16.04.2009
Сообщений: 247
|
По ходу strs2[(a - 1) % 4] не будет правильно работать, т.к. например, при a == 12 должна быть "восьмерка пики", а у тебя получается "восьмерка буби".
Я же перепутал floor с ceil. Если сохранить нумерацию исходной программы, то тогда карты одной масти расположены компактно подряд. Можно было бы написать strs2[a / 9], но тогда некорректно бы обрабатывались случаи, когда (a % 9) == 0. А так должно быть нормально. ceil(7 / 9) == 1. Отнимаем 1, получаем 0("черви"). ceil(9 / 9) == 1. Отнимаем 1, получаем 0("черви"). ceil(10 / 9) == 2. Отнимаем 1, получаем 1("пики"). Как вариант, можно не отнимать 1, а добавить в качестве первого элемента strs2 пустую строку. А лучше вообще не париться и написать (a - 1) / 9. Таким образом, сейчас у меня 3 варианта: 1) (int)ceil((double)a / 9) - 1 2) (int)ceil((double)a / 9) (надо добавить пустую строку в начале strs2) 3) (a - 1) / 9 Последний раз редактировалось megachuhancer; 06.07.2009 в 11:25. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
ошибка!!! | Fylhtq | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 01.06.2009 16:04 |
Ошибка в Аfor i:=1 to SI do. Пишит что ошибка в SI | Алексей_xXx | Помощь студентам | 2 | 29.05.2009 00:09 |
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... | infrared | Помощь студентам | 0 | 16.04.2009 17:44 |
ошибка | ben95 | Общие вопросы Delphi | 5 | 06.02.2008 23:25 |