Выводится неверный результат - C (СИ)

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

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

Добрый вечер! Ниже приведённый код, это сортировка массива алгоритмом Шелла. Непонятно почему программа выводит не отсортированный 2D массив, а какие-то случайные числа, похожие на адрес, где сидят элементы отсортированного 2D массива.
Листинг программы
  1. //int mas[ n ], i, j, k, mid;
  2. for ( i = 0; i < n; i++ )
  3. for ( j = i; j < n; j++ )
  4. for ( k = j - i; k >= 0; k -= i )
  5. {
  6. if ( matrica[ i + k] >= matrica[ k ] );
  7. break;
  8. }
  9. {
  10. mid = matrica [ k ];
  11. matrica[ k ] = matrica[ i + k] ;
  12. matrica[ i + k ] = mid;
  13. }
  14. printf( "\n\n");
  15. printf( "%d", mid);

Решение задачи: «Выводится неверный результат»

textual
Листинг программы
  1. void shell(int* array, int kol)
  2. {
  3.     if(array==NULL || *array == NULL)
  4.         printf("Массив пуст или не создан! Сортировка невозможна!!!\n");
  5.     else
  6.     {
  7.         int g[5]={5,4,3,2,1};
  8.         int m;
  9.         int j;
  10.         for(int k=0; k<5; k++)
  11.         {
  12.             g=r[k];
  13.             for(int i=g; i < kol; ++i)
  14.             {
  15.               m = array[i];
  16.  
  17.                  for(j=i-g; (m > array[j]) && (j >= 0); j=j-g)
  18.                     array[j+g] = array[j];
  19.                  array[j+g] = m;
  20.             }
  21.         }
  22.     }
  23.  
  24. }

Объяснение кода листинга программы

Список элементов кода:

  1. Проверка на пустой или не созданный массив.
  2. Объявление временной переменной типа int для хранения значения.
  3. Объявление переменной типа int для хранения значения индекса.
  4. Внешний цикл от 0 до 5.
  5. Внутренний цикл от i до kol.
  6. Передача значения i в переменную m.
  7. Внутренний цикл от j до i-g.
  8. Условие для сравнения значений m и array[j].
  9. Если условие истинно, то перемещение значения array[j] в array[j+g].
  10. Запись значения m в array[j+g].
  11. Конец внутреннего цикла.
  12. Конец внешнего цикла.
  13. Конец функции.

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


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

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

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

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

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

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