Упорядочить массив по убыванию - C (СИ)

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

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

Каким способом? Объясните, пожалуйста, ничего не получается=(
#include <stdio.h>
#include <stdlib.h>
#define n 5
#define m 5
 
int main()
{
    int a[n],i;
    int *pa;
    pa=a;
    for(i=0;i<n;i++,pa++)
    {
        scanf("%d",pa);
    }
    pa-=n;
 
    printf("1 massiv ");
    for(i=0;i<n;i++,pa++)
    {
        printf("%d ",*pа);
    }
    printf("\n");
    getch(); 
}

Решение задачи: «Упорядочить массив по убыванию»

textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#define N 5
int main ()
{
    int a[N];
    int *p=&a[0];
    int i, k,j;
    printf("Vedite a:\n");
    for(i=0;i<N;i++)
    scanf("%d",&a[i]);
    for(i=0;i<N;i++)
    for(j=i+1;j<N;j++)
    if(a[i]<a[j])
    {
        k=*(p+i);
        *(p+i)=*(p+j);
        *(p+j)=k;
    }
    for(i=0;i<N;i++)
    printf("%d ",a[i]);
    printf("\n");
    system("pause");
    return 0;
}

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

В этом коде происходит сортировка массива методом пузырька.

  1. Создаётся массив типа int a[N] и указатель на первый элемент этого массива p = &a[0].
  2. Далее, с помощью двух вложенных циклов, происходит сравнение каждого элемента массива с каждым другим элементом и, в случае если текущий элемент больше следующего, производится их перестановка местами.
  3. После сортировки элементов массива, они выводятся на экран с помощью цикла for и функции printf.
  4. В конце программы, с помощью функции system(pause), программа приостанавливается до нажатия клавиши. Следует отметить, что данный код может работать некорректно, если массив уже отсортирован по возрастанию или если в массиве будут повторяющиеся значения. Также, данный код может работать некорректно, если количество элементов в массиве будет меньше или равно 1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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