Не виден результат сортировки массива - C (СИ)
Формулировка задачи:
Здравствуйте! У меня вопрос - почему я не вижу результат сортировки массива? Программа по окончанию ввода всех элементов сразу же выходит!
Вот код:
#include <stdio.h> #include <stdlib.h> #define SWAP(a, b) ({ int t = *a; *a = *b; *b = t; }) int main(void){ int * arr, * i, * j, size; printf("Size: "); scanf("%d", &size); if ( ( arr = (int*)malloc(sizeof(int) * size) ) == NULL ){ perror("malloc"); exit(1); } for ( i = arr; i < arr + size; ++i ){ printf("Array[%d] = ", i - arr); scanf("%d", i); } for ( i = arr + size - 1; i > arr; --i ) for ( j = arr; j < i; ++j ) if ( *j > *i ) SWAP(i, j); for ( i = arr; i < arr + size; ++i ) printf("%d ", *i); printf("\n"); free(arr); exit(0); }
Решение задачи: «Не виден результат сортировки массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #define SWAP(a, b) ({ int t = *a; *a = *b; *b = t; }) int main(void){ int * arr, * i, * j, size; printf("Size: "); scanf("%d", &size); if ( ( arr = (int*)malloc(sizeof(int) * size) ) == NULL ){ perror("malloc"); exit(1); } for ( i = arr; i < arr + size; ++i ){ printf("Array[%d] = ", i - arr); scanf("%d", i); } for ( i = arr + size - 1; i > arr; --i ) for ( j = arr; j < i; ++j ) if ( *j > *i ) SWAP(i, j); for ( i = arr; i < arr + size; ++i ) printf("%d ", *i); printf("\n"); free(arr); system("pause"); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h и stdlib.h
- Определяется функция SWAP, которая меняет значения двух переменных
- В функции main() подключается стандартный ввод-вывод и выделяется память под массив заданного размера
- Заполняется массив с помощью стандартного ввода
- Производится сортировка массива методом пузырька
- Выводится отсортированный массив
- Освобождается память, выделенная под массив
- Запускается пауза для того, чтобы пользователь мог увидеть результат
- Возвращается 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д