Отсортировать массив методом пузырька - C (СИ) (74599)

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

Здравствуйте, помогите пожалуйста разобраться в сортировке пузырьком (вроде теоретически она должна работать правильно, но не работает) Само задание звучит так: Задать динамический одномерный массив, размером n. Отсортировать данный массив методом пузырька. Все законченные части программы оформить в виде функций.
#include<stdio.h>
#include<stdlib.h>
 
//прототипы функций:
int *mem(int n);
void vvod(int *mas, int n);
void sort(int *mas, int n);
void vyvod(int *mas, int n);
 
void main()
{
 
    int n;
    int *mas;
    printf ("Vvedite razmer massiva n=");
    scanf("%d", &n);
    mas=mem(n);
    printf("\nVvedite elementy massiva:");
    vvod(mas, n);
    sort(mas, n);
    printf("\nOtsortirovannyi massiv:");
}
 
// функция выделения памяти под массив
int *mem(int n)
{
    int *m;
    m=(int*)calloc(n, sizeof(int));
    if(m==NULL)
    {
        printf("\NDostato4nogo kolli4estva pamjati pod massiv net");
        return m;
    }
    return m;
}
 
//функция ввода массива
void vvod(int *mas, int n)
{
    for(int i=0; i<n; i++)
        scanf("%d", (mas+i));
}
 
 
// функция сортировки
void sort(int *mas, int n)
{
    int tmp;
    for(int i=0; i<n-1; i++)
    {
        for(int j=n-2; j>=i; j--)
        {if(*(mas+j)>*(mas(j+1)))
            tmp=*(mas+j);
            
            {*(mas+j)=*(mas(j+1));
             *(mas(j+1))=tmp;
            }
        }
    }
}
 
// функция вывода на экран
void vyvod(int *mas, int n)
{
    for(int i=0; i<n; i++)
    printf("%5d", *(mas+i));
}


textual

Код к задаче: «Отсортировать массив методом пузырька - C (СИ) (74599)»

#include<stdio.h>
#include<stdlib.h>
 
//прототипы функций:
int *mem(int n);
void vvod(int *mas, int n);
void sort(int *mas, int n);
void vyvod(int *mas, int n);
 
void main()
{
 
    int n;
    int *mas;
    printf ("Vvedite razmer massiva n=");
    scanf("%d", &n);
    mas=mem(n);
    printf("\nVvedite elementy massiva:");
    vvod(mas, n);
    sort(mas, n);
    printf("\nOtsortirovannyi massiv:");
    vyvod(mas,n);
    system("pause");
}
 
// функция выделения памяти под массив
int *mem(int n)
{
    int *m;
    m=(int*)calloc(n, sizeof(int));
    if(m==NULL)
    {
        printf("\NDostato4nogo kolli4estva pamjati pod massiv net");
        return m;
    }
    return m;
}
 
//функция ввода массива
void vvod(int *mas, int n)
{
    for(int i=0; i<n; i++)
        scanf("%d", (mas+i));
}
 
 
// функция сортировки
void sort(int *mas, int n)
{
    int tmp;
    for(int i=0; i<n-1; i++)
    {
        for(int j=n-2; j>=i; j--)
        {
            if(mas[j]>mas[j+1]){
            tmp=mas[j];
            
            mas[j]=mas[j+1];
             mas[j+1]=tmp;
            }
            
        }
    }
}
 
// функция вывода на экран
void vyvod(int *mas, int n)
{
    for(int i=0; i<n; i++)
    printf("%5d", *(mas+i));
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

10   голосов, оценка 4.100 из 5

Источник