Упорядочить элементы массива, не используя сортировку - C (СИ)
Формулировка задачи:
Добрый день!
Подскажите пожалуйста направление в решении следующей задачи:
дан массив данных, в котором значения генерируются случайным образом. необходимо упорядочить элементы массива.
сама программа получилась такая:
Всю голову сломал как упорядочить элементы не используя сортировку.
system("chcp 1251");
system("cls");
int a[15],i,n,s,d;
printf("введите количество элементов массива от 1 до 15\n");
scanf("%d",&n);
while(n<1||n>15)
{printf("введены некорректные данные,пробуй еще \n");
scanf("%d",&n);
}
s=21;
d=10;
srand(time(0));
for(i=0;i<n;i++)
{a[i]=rand()%s+d;
}
printf("вывод элементов массива\n");
for(i=0;i<n;i++)
{printf("i=%2d a=%2d\n",i+1,a[i]);
}Решение задачи: «Упорядочить элементы массива, не используя сортировку»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LOW_BOUND (-30)
#define NUMBERS_COUNT (20)
int main(void) {
int i;
srand(time(NULL));
for ( i = 0; i < NUMBERS_COUNT; ++i )
printf("%d ", LOW_BOUND + 10 * i + rand() % 10);
printf("\n");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream, stdlib, time.
- Определение констант: LOW_BOUND (-30) и NUMBERS_COUNT (20).
- В функции main() инициализируется переменная i.
- Засевается генератор случайных чисел с помощью функции srand(time(NULL)).
- В цикле for, который выполняется 20 раз, выводится на экран случайное число, полученное по формуле LOW_BOUND + 10*i + rand() % 10.
- После окончания цикла выводится символ новой строки.
- Функция main() возвращает 0, что означает успешный конец работы программы.