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

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

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

Каким способом? Объясните, пожалуйста, ничего не получается=(
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define n 5
  4. #define m 5
  5. int main()
  6. {
  7. int a[n],i;
  8. int *pa;
  9. pa=a;
  10. for(i=0;i<n;i++,pa++)
  11. {
  12. scanf("%d",pa);
  13. }
  14. pa-=n;
  15. printf("1 massiv ");
  16. for(i=0;i<n;i++,pa++)
  17. {
  18. printf("%d ",*pа);
  19. }
  20. printf("\n");
  21. getch();
  22. }

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

textual
Листинг программы
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define N 5
  4. int main ()
  5. {
  6.     int a[N];
  7.     int *p=&a[0];
  8.     int i, k,j;
  9.     printf("Vedite a:\n");
  10.     for(i=0;i<N;i++)
  11.     scanf("%d",&a[i]);
  12.     for(i=0;i<N;i++)
  13.     for(j=i+1;j<N;j++)
  14.     if(a[i]<a[j])
  15.     {
  16.         k=*(p+i);
  17.         *(p+i)=*(p+j);
  18.         *(p+j)=k;
  19.     }
  20.     for(i=0;i<N;i++)
  21.     printf("%d ",a[i]);
  22.     printf("\n");
  23.     system("pause");
  24.     return 0;
  25. }

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы