Сортировать массив модифицированным пузырьком с помощью функции, заранее не зная количество элементов - 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);
Объяснение кода листинга программы
- Ввод данных в массив M с помощью функции scanf. Значения массива вводятся с клавиатуры.
- Вывод значений массива M на экран с помощью функции printf.
- Вызов функции sort с аргументами M и n.
- В функции sort происходит сортировка массива M по возрастанию.
- Результат сортировки выводится на экран.