Вывод массива через функцию после сортировки - C (СИ)
Формулировка задачи:
У меня есть небольшая проблема, помогите, пожалуйста.
Как мне распечатать массив после его сортировки ? Если использовать обычный фор, то у меня получается ошибка сегментации
Листинг программы
- #include<stdio.h>
- #include<string.h>
- void bubble(char *items, int count)
- {
- register int a, b;
- register char t;
- for(a=1; a < count; ++a)
- for(b=count-1; b >= a; --b) {
- if(items[b-1] > items[b]) {
- t = items[b-1];
- items[b-1] = items[b];
- items[b] = t;
- }
- }
- }
- void insertSort(char a[], int length)
- {
- int i, j, value;
- for(i = 1; i < length; i++)
- {
- value = a[i];
- for (j = i - 1; j >= 0 && a[j] > value; j--)
- {
- a[j + 1] = a[j];
- }
- a[j + 1] = value;
- }
- }
- void selectSort(int* arr, int size)
- {
- int tmp, i, j, pos;
- for(i = 0; i < size; ++i) // i - номер текущего шага
- {
- pos = i;
- tmp = arr[i];
- for(j = i + 1; j < size; ++j) // цикл выбора наименьшего элемента
- {
- if (arr[j] < tmp)
- {
- pos = j;
- tmp = arr[j];
- }
- }
- arr[pos] = arr[i];
- arr[i] = tmp; // меняем местами наименьший с a[i]
- }
- }
- int main(){
- int a,i;
- scanf("%d",&a);
- int b[a];
- for (i = 0; i<a; i++)
- scanf("%d",&b[i]);
- //for (i = 0; i<a; i++)
- // printf("%d ", b[i]);
- printf("Выберети метод сортировки:\n Сортировка пузырьковая - 1 \n Сортировка вставками - 2 \n Сортировка слияниями - 3 \n");
- scanf("%d",&a);
- switch(a)
- {
- case 1:
- printf("Пузырьковая сортировка\n");
- // bubble(b, strlen(b));
- // printf("Отсортированная строка: %s.\n", b);
- break;
- case 2:
- printf("Сортировка вставками\n");
- // insertSort(b, strlen(b));
- // printf("Отсортированная строка: %s.\n", b);
- break;
- case 3:
- printf("Сортировка выбором\n");
- selectSort(b, sizeof(b));
- for (i=0; i < sizeof(b); ++i)
- printf("Отсортированная строка: %d.\n", b[i]);
- break;
- }
- return 0;
- }
Решение задачи: «Вывод массива через функцию после сортировки»
textual
Листинг программы
- selectSort(b, sizeof(b) / sizeof(b[0]));
- for (i=0; i < sizeof(b) / sizeof(b[0]); ++i)
Объяснение кода листинга программы
- В данном коде предполагается, что функция selectSort() используется для сортировки массива b.
- Функция selectSort() принимает два аргумента: b и size, где size - это размер массива b.
- В данной постановке задачи, размер массива b вычисляется как результат деления sizeof(b) на sizeof(b[0]) (предполагается, что b[0] является первым элементом массива).
- Затем, с помощью цикла for, происходит итерация по всем элементам массива b, начиная с индекса 0 и до размера массива.
- В каждой итерации цикла, значение элемента массива выводится на экран.
- Значение переменной i увеличивается на 1 после каждой итерации цикла.
- Предполагается, что в процессе сортировки элементы массива меняются местами, но в данном коде это не отражено.
- Предполагается, что элементы массива b уже инициализированы до вызова функции selectSort().
- Предполагается, что функция selectSort() изменяет порядок элементов массива b на месте, без создания дополнительных массивов.
- Предполагается, что элементы массива b являются типа данных, для которых определена операция сравнения
<
. - Предполагается, что в процессе сортировки элементы массива не пропускаются и не удаляются.
- Предполагается, что в процессе сортировки элементы массива не дублируются.
- Предполагается, что в процессе сортировки элементы массива не изменяются, кроме их порядка.
- Предполагается, что функция selectSort() возвращает void, то есть не возвращает никакого значения.
- Предполагается, что функция selectSort() не принимает дополнительных аргументов, кроме b и size.
- Предполагается, что в процессе сортировки элементы массива не выходят за пределы массива.
- Предполагается, что в процессе сортировки элементы массива не перезаписываются.
- Предполагается, что элементы массива b могут быть любого типа данных, для которых определена операция сравнения
<
. - Предполагается, что элементы массива b могут быть размещены в памяти подряд.
- Предполагается, что элементы массива b могут быть упорядочены по возрастанию или по убыванию.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д