Найти ошибку (сортировка выбором) - C (СИ)
Формулировка задачи:
Просьба помочь найти ошибку.
// Дано: Сортировка выбором. Выбирается минимальный элемент в массиве и запоминается.
//Затем удаляется, а все последующие за ним элементы сдвигаются на один влево.
//Сам элемент заносится на освободившуюся последнюю позицию.
Не могу занести элемент на освободившуюся последнюю позицию.
#include <stdio.h> int sort(int A[], int n) //А-массив, n-размерность массива { for(int i=n-1; i>=0; i--) { int min=A[0]; //переменная для хранения сортируемого элемента массива int j; int tmp=0; for(j=1; j<=i; j++) //поиск наименьшего if(A[j]<=min) { min=A[j];tmp=j; } for(int k=tmp; k<n-1; k++) //сдвиг элементов массива A[k]=A[k+1]; A[n-1]=min;// минимальный элемент -> в конец массива } return 0; } void main(void) { int A[]={5,6,4,56,1,1,1,4,4,99,55,55,32,0,2}; int n=15; sort(A, n); for(int i=0; i<n; i++) printf(" A[%d]=%d\n", i, A[i]); }
Решение задачи: «Найти ошибку (сортировка выбором)»
textual
Листинг программы
#include <stdio.h> #include <conio.h> int sort(int A[], int n) //А-массив, n-размерность массива { for(int i=n-1; i>=0; i--) { int min=A[0]; //переменная для хранения сортируемого элемента массива int j; int tmp=0; for(j=1; j<=i; j++) //поиск наименьшего if(A[j]<=min) { min=A[j];tmp=j; } for(int k=tmp; k<n-1; k++) //сдвиг элементов массива A[k]=A[k+1]; A[n-1]=min;// минимальный элемент -> в конец массива } return 0; } int main(void) { int A[]={5,6,4,56,1,1,1,4,4,99,55,55,32,0,2}; int n=15; sort(A, n); for(int i=0; i<n; i++) printf(" A[%d]=%d\n", i, A[i]); getch(); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию sort для сортировки массива выбором
- Создаем массив A и переменную n для определения размерности массива
- Запускаем функцию sort для сортировки массива
- Выводим отсортированный массив на экран
- Завершаем программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д