Упорядочить матрицу по возрастанию методом выбора - C (СИ)
Формулировка задачи:
Дан массив вещественных чисел, состоящих из N(20) элементов. Упорядочить ее по возрастанию методом выбора.
С помощью указателей.
вот начала,ввод массива и поиск максимального, не могу понять цикл перекидывания в конец с помощью указателей.
пожалуйста напишите цикл
Решение задачи: «Упорядочить матрицу по возрастанию методом выбора»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 20
int main()
{
srand(time(NULL));
int array[20];
int* arrayEnd = array + (sizeof(array) / sizeof(*array));
int* cur;
for (cur = array; cur <= arrayEnd; ++cur)
{
*cur = rand() % 100;
}
for (cur = array; cur <= arrayEnd; ++cur)
{
printf("%d ", *cur);
}
printf("\n");
for (cur = array; cur < arrayEnd; ++cur)
{
int* min = cur;
int* curScroll = cur + 1;
for (; curScroll <= arrayEnd; ++curScroll)
{
if (*min > *curScroll)
{
min = curScroll;
}
}
int tmp = *min;
*min = *cur;
*cur = tmp;
}
for (cur = array; cur <= arrayEnd; ++cur)
{
printf("%d ", *cur);
}
printf("\n");
system("pause");
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем размер массива N
- Инициализируем генератор случайных чисел
- Создаем массив типа int и инициализируем его случайными числами от 0 до 99
- Выводим массив на экран
- Создаем указатель min, который будет хранить минимальный элемент текущего подмассива
- Создаем указатель curScroll, который будет перебирать элементы текущего подмассива
- Начинаем цикл по всем элементам массива, начиная с текущего подмассива
- Внутри цикла перебираем все элементы текущего подмассива и находим минимальный элемент
- Меняем местами текущий элемент и минимальный элемент
- Повторяем шаги 8-10 для всех подмассивов, пока не переберем весь массив
- Выводим отсортированный массив на экран
- Ждем нажатия клавиши для выхода из программы
- Возвращаем 0, чтобы указать, что программа успешно завершилась