1. Условие
Дан массив a1, a2, ..., an. Отсортировать массив по возрастанию, используя следующий алгоритм: последовательном просмотром чисел a1, a2, ..., an найти наименьшее i, такое , что аi > аi-1. Поменять местами аi и ai-1 и возобновить просмотр с начала массива. Когда не удастся найти такое i, массив будет упорядочен нужным образом.
2. Решение
Оператор вводит размер массива n. Динамически выделяется блок оперативной памяти под массив a1, a2, ..., an. В цикле производится инициализация массива. Вызывается функция обработки массива, в которой производится упорядочивание элементов массива по возрастанию. Отсортированный массив выводится на экран.
3. Алгоритм решения

4. Текст программы
1 : #include <stdio.h>
2 : #include <stdlib.h>
3 : #include <conio.h>
4 : void funk_1 (float *a, int n)
5 : {
6 : int i, j;
7 : float s;
8 : for( i=0; i<n; i++)
9 : for( j=n-1; j>i; j--)
10: if (a[ j-1] > a[j] )
11: {
12: s=a[ j-1];
13: a[ j-1]=a[j];
14: a[ j]=s;
15: }
16: }
17 void main()
18: {
19: int i,n;
20: float *a;
21: clrscr();
22: printf("\n Введите натуральное число n ");
23: scanf("%d",&n);
24: a = (float*)malloc(n*sizeof(float));
25: for (i = 0; i < n; i++)
26: {
27: printf("\n Введите a[%d] = ", i+1);
28: scanf("%f",&a[i]);
29: }
30: printf ("\n Исходная последовательность\n");
31: for (i = 0; i < n; i++)
32: printf("%.2f ", a[i]);
33: printf(" \n");
34: printf(" Новая последовательность: \n");
35: funk_1(a,n);
36: for (i = 0; i < n; i++)
37: printf("%.2f ", a[i]);
38: free(a);
39: printf("\n \n \n Для завершения программы введите любой символ ");
40: getch();
41: }
5. Работа программы
Введите натуральное число n 10
a[1] = 4
a[2] = 5
a[3] = 1
a[4] =-1
a[5] = 2
a[6] =-10
a[7] = 3
a[8] = 9
a[9] = 10
a[10] = 10
Исходная последовательность:
4.00 5.00 1.00 -1.00 2.00 -10.00 3.00 9.00 10.00 10.00
Новая последовательность:
-10.00 -1.00 1.00 2.00 3.00 4.00 5.00 9.00 10.00 10.00
Для завершения программы введите любой символ
6. Проверка
Программа работает корректно.