Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Дошёл до главы 5.8 K&R Массивы указателей. Увидел пример, и решил сделать задание сам. Ещё не прочитал как делают K&R, решил сам на листочке нарисовать алгоритм и запрограммировать. У K&R сортируются месяцы и я решил также. На код ушло 30 минут, по причине того что забыл перед последним printf обнулить i. Также хочется сократить функцию сравнения двух строк. Я не преследовал скорость, наверное этот алгоритм самый медленный из возможных, но если он правильный или близок к этому, уже хорошо. В общем, код ниже. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 10:25 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SashaMercury, Лучше напиши словами алгоритм, который ты решил запрограммировать. Например, самым наивным является метод пузырька, но я у тебя его не увидел Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. По поводу функции сравнения строк: На сколько продвинется продвинется положение f и s после этой проверки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ? Если пока нет уверенности в правильном ответе на этот вопрос, то поступай наивно - вычисли сначала длины f и s - сравни их, если равны веди посимвольное сравнение, иначе верни либо -1, либо 1. Или еще лучше используй strcmp, если это не является темой твоего упражнения. Только учти, подобное сравнение не является корректным в плане упорядочивания в алфавитном порядке Так например, май у тебя будет самым первым только потому, что слово состоит из трех букв. Или именно это ты хотел получить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 12:06 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SashaMercury, может так всё же лучше ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Твой код настолько мне лично не понятен, что я даже не могу его анализировать на предмет правильности. У меня лично закипает моск. Я всё же думаю, что лучше писать код в соответствии с принципами структурного программирования. Можно кстати и так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 13:47 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Нет, Май не будет первым. Проверьте пожалуйста. Неужели настолько запутанно пишу код( SS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:12 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SS_phone, я читал комментарий int strcmp_cur(const char* f, const char* s)//функция лексиграфически сравнивает две строки 1 первая больше,если вторая -1, 0 ничья "may" будет меньше всех указанных строк. Но само тело функции будет работать как бог на душу положит, поскольку там модифицируется положение указателей входных строк несколько раз в зависимости от того, сработали или нет предыдущие условия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:19 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Анатолий Широковя читал комментарий там написано "лексиграфически сравнивает", т.е. 1 первая "лексиграфически" больше ХЗ что за термин такой "лексиграфически", есть "ЛексиКОграфический порядок" (его использует strcmp()) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:35 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
вышел с компа. Лексикографически. Опечатка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:41 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SashaMercury, ну а почему strcmp не использовал? Ведь своя функция сравнения вроде бы не требовалась, чтобы попробовать алгоритм сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:45 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Потому что я изучаю K&R и там было показано как самому написать такую функцию. Мне нравится самому писать эти функции. Указатели чудо ^_^ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:52 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Долго пытался понять код функции strcmp_cur() в итоге решил потестить: Код: plaintext 1. получил -98 PS Надо тщательнее свои поделки проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:55 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Я проверял...честно...много раз..попробуйте %i/ Блин, сейчас скачаю компилятор. Быть не может, я честно её тестил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:01 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Скачал Borland C++ 3.1, вернула 98..и я уже понял в чём ошибка, много раз сдвигаю указатель в if -else if. Но почему в Visual Studio 2013 Express всё ок ?( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:21 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПотому что я изучаю K&R и там было показано как самому написать такую функцию. Мне нравится самому писать эти функции. Указатели чудо ^_^ Это ты молодец. Просто, смотри - так тебе помимо того, что ты сейчас пытаешься поупражняться в сортировке, надо еще тестировать функцию, которая требует сама по себе отдельного внимания. В итоге ты распыляешься. Сосредоточься сейчас на чем-то одном. Сортировка - значит пока можно использовать и стандартную strcmp. Если функция сравнения, то функция сравнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:32 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SashaMercuryСкачал Borland C++ 3.1, вернула 98..( Саша (ты же Саша?), выброси немедленно эту гадость и НИКОГДА не её тащи в рот к себе на комп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:37 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Dima_T, я исправил C: Но самое хорошее всё-таки, что понял свою предыдущую ошибку, а значит учусь вот код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Собственно, перечитал ещё раз ответ MasterZiv, он так и написал, в целом. PS Почему на VisualStudio всё отработало ??ведь ошибка очевидная со сдвигом указателя..Завтра ещё раз проверю старый код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:37 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:41 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SashaMercuryСобственно, перечитал ещё раз ответ MasterZiv, он так и написал, в целом. Не, я не так написал. Я for написал. SashaMercuryPS Почему на VisualStudio всё отработало ??ведь ошибка очевидная со сдвигом указателя..Завтра ещё раз проверю старый код Глюки. Твои или ... Да нет, скорее всего, твои. Надо на такие функции писать Unit-тесты, много, штук 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:43 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
MasterZiv, да, Саша. У меня htc раздаёт интернет на ноутбук. Скорость не высокая. Потому скачал минимальный по размерам дистрибутив. Завтра принесу другой компилятор. Анатолий Широков, вы правы) Но для меня это как конструктор, интересно самому, вот и стараюсь по-минимуму пользоваться библиотеками. В следующий раз подумаю как поступить Dima_T, MasterZiv, Анатолий Широков, всем спасибо за ответы и советы C: Сегодня я почувствовал определённый сдвиг. Вывод дня: указатели чудо ^_^. Нравятся жутко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 15:48 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SashaMercuryDima_T, я исправил C: Но самое хорошее всё-таки, что понял свою предыдущую ошибку, а значит учусь вот код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Собственно, перечитал ещё раз ответ MasterZiv, он так и написал, в целом. MasterZiv другое написал. А тебе советую внимательно посмотреть на свой код и найти фрагменты которые никогда не выполнятся, а только будут вхолостую тратить процессорное время. и * лишняя тут Код: plaintext 1. 2. хотя работает правильно. SashaMercuryPS Почему на VisualStudio всё отработало ??ведь ошибка очевидная со сдвигом указателя..Завтра ещё раз проверю старый код Скорее всего дал параметры с которыми результат оказался правильный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 16:15 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
SashaMercuryСегодня я почувствовал определённый сдвиг. Вывод дня: указатели чудо ^_^. Нравятся жутко Хехе... у тебя еще всё впереди! Будешт ловить NPE, segfault,.. bsod и кричать "Буть проклит тот день када я сел за баранку этово пылесоса!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 19:01 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
mayton, что такое bsod ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 19:17 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
B(lue)S(creen)O(f)D(eadh) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 19:22 |
|
||
|
Сортировка на Си. Критикуйте, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Dima_TСкорее всего дал параметры с которыми результат оказался правильный. MasterZivГлюки. Твои или ... Да нет, скорее всего, твои. верно) хорошо что хотя бы компилятор не глючит mayton, спасибо) надеюсь, это было бы здорово и интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2014, 02:19 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=65&tid=2019698]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
15ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 168ms |

| 0 / 0 |
