Упорядочить элементы массива, не используя сортировку - 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, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д