Упорядочить массив по убыванию - 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; }
Объяснение кода листинга программы
В этом коде происходит сортировка массива методом пузырька.
- Создаётся массив типа int a[N] и указатель на первый элемент этого массива p = &a[0].
- Далее, с помощью двух вложенных циклов, происходит сравнение каждого элемента массива с каждым другим элементом и, в случае если текущий элемент больше следующего, производится их перестановка местами.
- После сортировки элементов массива, они выводятся на экран с помощью цикла for и функции printf.
- В конце программы, с помощью функции system(
pause
), программа приостанавливается до нажатия клавиши. Следует отметить, что данный код может работать некорректно, если массив уже отсортирован по возрастанию или если в массиве будут повторяющиеся значения. Также, данный код может работать некорректно, если количество элементов в массиве будет меньше или равно 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д