Блинная сортировка (не могу найти ошибку в коде) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. #include <stdio.h>
  2. void flip(int *data, int m, int n)
  3. {
  4. int swap, i;
  5. for (i = m; i < --n; i++)
  6. {
  7. swap = data[i];
  8. data[i] = data[n];
  9. data[n] = swap;
  10. }
  11. }
  12. int main()
  13. {
  14. int i, j, a, maxNumPos, moves = 0, length, data[100];
  15. scanf_s("%d", &length);
  16. if (length < 2)
  17. return 0;
  18. for (j = 0; j < length; j++)
  19. {
  20. scanf_s("%d", &data[j]);
  21. }
  22. for (i = length; i > 1; i--)
  23. {
  24. maxNumPos = 0;
  25. for (a = 0; a < i; a++)
  26. {
  27. if (data[a] > data[maxNumPos])
  28. maxNumPos = a;
  29. }
  30. if (maxNumPos == (i - 1))
  31. continue;
  32.  
  33. if (maxNumPos >= 0)
  34. {
  35. flip(data, maxNumPos, i);
  36. moves++;
  37. }
  38. }
  39. for (j = 0; j < length; j++)
  40. {
  41. printf("%d ", &data[j]);
  42. }
  43. return moves;
  44. }
допустим ввод массив из 5: 23, 3, 5, 2, 1 вывод: 1636348, 1636352, 1636356, 1636360, 1636364 (должно быть: 1, 2, 3, 5, 23) Обычно сам читаю в инете, но материала про блинную сортировку на понятном мне языке немного (опыт программирования 2 недели =/)

Решение задачи: «Блинная сортировка (не могу найти ошибку в коде)»

textual
Листинг программы
  1. printf("%d ", data[j]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут