C_Kurs_Lekt / DOC_RAZNOE / Работа с массивом _СОРТИРОВКА_
.pdf/* Пример работы с массивом - вектором (СОРТИРОВКА)*/
#include <stdio.h> #include <stdlib.h> int main(){
int n, a , b, i, j, S, temp;
int *dmas; /* dmas - указатель на целое (число или массив). */ // запрашиваем размеры массива
printf(" n =? "); scanf("%d", &n);
/* выделяем память для массива и его начальный адрес запоминаем в указателе. */
dmas=(int *)calloc(n, sizeof(int));
/* заполняем массив случайными целыми числами
в интервале [a,b] |
*/ |
a= -5; b= 24; |
|
//srand(time(NULL)); |
|
for(i=0;i<n;i++) |
|
dmas[i]=a+rand()%(b-a+1);
/* Печатаем значения массива (вектора) */ printf("\n\nIshodnyj massiv\n\n");
for (i=0;i<n;i++) printf("%2d ", dmas[i]); printf("\n");//
##########################################################
// ##########################################################
// Индивидуальное задание
// Упорядочить элементы массива по возрастанию // Пузырьковая сортировка /* Необходимо 2 цикла
1-й для нескольких проходов (повторений)
2-для перемещения вдоль массива
*/ // сортируем
for (j=0; j<n-1; ++j) // для повторов (проходов)
for (i=0; i<n-1; ++i) // для перемещения вдоль массива
if (dmas[i]>dmas[i+1]) // Условие "по возрастанию"если нарушен порядок сортировки
{
temp = dmas[i]; dmas[i] = dmas[i+1]; dmas[i+1] = temp;
}// если сортировать "по убыванию" - меняем > на <
//печатаем результат сортировки printf("\n\nOtsortirovannyj massiv\n\n"); for (i=0;i<n;i++) printf("%2d ", dmas[i]); printf("\n");
//##########################################################
//освобождение памяти, выделенной для массива
free(dmas); return 0;
}