Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, собственно что мне нужно описано в название темы, пытался реализовать но как то не очень получилось, меняет только два элемента из всего массива, вот мои попытки задание а ): Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 18:22 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
JaCoOps, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2016, 03:44 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
UsmanJaCoOps, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. получаются те же самые выходные данные что и были при первом коде Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 17:13 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
JaCoOps, Значение n должно быть равно количеству элементов в массиве. Последний вариант кода в студию! (: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 18:04 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
Проблема решена) поставил вывод массива в цикле // перестановка: Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 18:09 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
JaCoOps, Код: plaintext 1. 2. 3. и этот участок кода у вас компилируется ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 04:09 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
SashaMercuryJaCoOps, Код: plaintext 1. 2. 3. и этот участок кода у вас компилируется ? теперь можно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 12:53 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
MasterZivтеперь можно... всего 50 лет с небольшим прошло (Algol, PL/1,....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 15:50 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
MasterZivSashaMercuryJaCoOps, Код: plaintext 1. 2. 3. и этот участок кода у вас компилируется ? теперь можно... В последнем стандарте описана такая возможность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:06 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
SashaMercuryMasterZivпропущено... теперь можно... В последнем стандарте описана такая возможность?С99, вроде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:08 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
8 лет понадобилось чтобы сделать C-like printf (..) в Java начиная с JDK 1.0 (23 января 1996) до анонса "Тигра" J2SE 5.0 (30 сентября 2004). Мдя... ох уж эти консерваторы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:11 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
SashaMercuryMasterZivпропущено... теперь можно... В последнем стандарте описана такая возможность? Вроде как есть в С99 Читай про Variable-length arrays ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:12 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
UsmanSashaMercuryпропущено... В последнем стандарте описана такая возможность?С99, вроде И всё-таки, это написано в стандарте или это расширение стандарта? Судя по тому, что я читал ранее в стандарте ISO/IEC 14882:2011 такой возможности не было. В данном случае n должна быть константой. Может быть что-то путаю конечно. Меня поправят. Но вообще, если это было в стандарте 99 года, не факт что это сохранилось в стандарте 11 года. Если я ошибаюсь тогда, судя по тому, что написано по той ссылке, на стеке выделяется некий сегмент на момент декларации. Наверняка не маленький. А как быть в том случае, если потребуется создать массив размером MAX_VALUE_SIZE_T(здесь псевдомакроимя)? Или выделяется максимально возможный размер сегмента? Чем не угодили указатели? Неужели из-за безопасности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:23 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
SashaMercuryА как быть в том случае, если потребуется создать массив размером MAX_VALUE_SIZE_T а кто сказал, что на стеке? кто сказал, что стек один и является непрерывной областью памяти? кто сказал, что у стека имеется аппаратная поддержка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:27 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
Изопропила кто сказал, что на стеке? http://www.cplusplus.com/articles/iz3hAqkS/ Variable-length arrays The variable-length arrays (or VLA's) are arrays that can be declared by using a variable, instead of a compile-time constant, for their size. They do not have variable length as in being able to resize. VLA's are infamous because they're allocated on the stack and not the heap. The stack area is used for local variables, and is more limited in size than the heap. If the size of the VLA is too big, a stack overflow will occur, resulting in a crash. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:32 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЕсли я ошибаюсь тогда, судя по тому, что написано по той ссылке, на стеке выделяется некий сегмент на момент декларации. Наверняка не маленький. А как быть в том случае, если потребуется создать массив размером MAX_VALUE_SIZE_T(здесь псевдомакроимя)? Или выделяется максимально возможный размер сегмента? Чем не угодили указатели? Неужели из-за безопасности? Думаю просто правится вершина стэка. ИМХУ Сделали для удобства, т.к. часто бывает надо объявить локальный массив, размер которого заранее не известен. Безопасность тут ни при чем, точнее она даже страдает из-за того что можно случайно переполнение стэка устроить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:37 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
SashaMercuryНо вообще, если это было в стандарте 99 года, не факт что это сохранилось в стандарте 11 года.В C11 ее вынесли как необязательную языковую фичу. Для "подключения" использовать макрос __STDC_NO_VLA__ см. https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:44 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЕсли я ошибаюсь тогда, судя по тому, что написано по той ссылке, на стеке выделяется некий сегмент на момент декларации. Наверняка не маленький. А как быть в том случае, если потребуется создать массив размером MAX_VALUE_SIZE_T(здесь псевдомакроимя)? Или выделяется максимально возможный размер сегмента?см. https://en.wikipedia.org/wiki/Variable-length_array см. alloca (еще тынц ) SashaMercuryЧем не угодили указатели? Неужели из-за безопасности? malloc() видать поднадоел (: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:49 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
Usmanсм. alloca Интересно что на языке Гавайцев аллоха означает и "привет и "прощай".... что как-бе говорит нам.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:53 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
UsmanВ C11 ее вынесли как необязательную языковую фичу. Для "подключения" использовать макрос __STDC_NO_VLA__ Не для подключения, а для определения поддерживает компилятор или нет. C11 draft n1570__STDC_NO_VLA_ _ The integer constant 1, intended to indicate that the implementation does not support variable length arrays or variably modified types. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 16:56 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
Гость123, Да, ашыпся (: Спасибо. P.S. Кто Вы? Не узнаю Вас в гримме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 17:00 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
SashaMercuryСудя по тому, что я читал ранее в стандарте ISO/IEC 14882:2011 такой возможности не было.так это стандарт С++, а в треде речь о С идёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 00:29 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
UsmanSSЧем не угодили указатели? Неужели из-за безопасности? malloc() видать поднадоел (: Свежо придание да верится с трудом. Usman, спасибо вам за ссылки на w, однако доверять им нельзя, это ни в коем случае не достоверный источник egorych так это стандарт С++, а в треде речь о С идёт. В ISO/IEC 9899:2011 не встречал такого, сейчас проверю ещё раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 01:59 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
UsmanSashaMercuryНо вообще, если это было в стандарте 99 года, не факт что это сохранилось в стандарте 11 года.В C11 ее вынесли как необязательную языковую фичу. Для "подключения" использовать макрос __STDC_NO_VLA__ см. https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features Доступ к элементу массиву с использованием оператора [] - 'необязательная языковая фича', а это существенная возможность языка. На мой взгляд, ничего хорошего в такой возможности нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 02:11 |
|
||
|
Си/поменять два элемента массива местами
|
|||
|---|---|---|---|
|
#18+
ISO/IEC 9899:2011 If the size is not present, the array type is an incomplete type. If the size is * instead of being an expression, the array type is a variable length array type of unspecified size, which can only be used in declarations or type names with function prototype scope;143) such arrays are nonetheless complete types. If the size is an integer constant expression and the element type has a known constant size, the array type is not a variable length array type; otherwise, the array type is a variable length array type. (Variable length arrays are a conditional feature that implementations need not support; see 6.10.8.3.) 143) Thus, * can be used only in function declarations that are not definitions (see 6.7.6.3). ISO/IEC 9899:2011, p.132, example Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 02:34 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39224103&tid=2018532]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 138ms |

| 0 / 0 |
