Сортировать массив модифицированным пузырьком с помощью функции, заранее не зная количество элементов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно сортировать массив модифицированным пузырьком с помощью функции, заранее не зная количество элементов. Плохо дружу с указателями и думаю, что ошибка связана с ними.
#include <stdio.h>
#include <malloc.h>
 
void sort(double*,int);
 
int main()
{
    double *M;
    int i;
    int n;
    printf("input n\n");
    scanf("%d", &n);
    if((M=(double*)malloc(n*sizeof(double)))==NULL)
    {
        return 111;
    }
    for(i=0;i<n;i++)
    {
        printf("m[%d} = ", i);
        scanf("%lf", *M);
    }
    sort(&M,n);
    for(i=0;i<n;i++)
    {
        printf("%.2lf ", M[i]);
    }
    free(M);
}
 
void sort(double *m, int n)
{
    int flag;
    int i;
    double tmp;
    do
    {
        flag=0;
        for(i=0;i<n-1;i++)
        {
            if(m[i]>m[i+1])
            {
                flag=1;
                tmp=m[i];
                m[i]=m[i+1];
                m[i+1]=tmp;
            }
        }
    }
    while(flag);
    return;
}

Решение задачи: «Сортировать массив модифицированным пузырьком с помощью функции, заранее не зная количество элементов»

textual
Листинг программы
for(i=0;i<n;i++)
    {
        printf("m[%d} = ", i);
        scanf("%lf", M+i);
    }
    sort(M,n);

Объяснение кода листинга программы

  1. Ввод данных в массив M с помощью функции scanf. Значения массива вводятся с клавиатуры.
  2. Вывод значений массива M на экран с помощью функции printf.
  3. Вызов функции sort с аргументами M и n.
  4. В функции sort происходит сортировка массива M по возрастанию.
  5. Результат сортировки выводится на экран.

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы