Сортировка масива с использованием указателей - C (СИ)

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

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

Здраствуйте, я не могу розобраться з сортировкой массива через указатели. У меня вроде он сортируеться, но максимальное число куда то пропадает, а в место него какой то мусор стоит -858993460 и тд. Помогоите плиз. Вод мой код:
#include<windows.h>
#include<stdio.h>
#include <time.h>
#include <stdlib.h>
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int A[3][3] = { {4,7,1}, {1,2,8}, {3,5,6} };
    int* begin_a;
    int* end_a;
    int i = 0;
    printf("Не сортований масив\n");
    // вивід не сортованого масива
    while (i < 3) {
        for (begin_a = (int *)A + (i * 3) + 0, end_a = (int *)A + (i * 3) + 3; begin_a != end_a; begin_a++) {
            printf("%d ", *begin_a); 
        }
        i++;
    }
    i = 0;
    printf("\n\n");
    //сортування бульбашкою
    int temp, N = 0;
    while (N < 10) {
        for (begin_a = (int*)A+0, end_a = (int*)A + 9; begin_a < end_a; begin_a++) {
            if (*begin_a > *(begin_a + 1)) {
                temp = *begin_a;
                *begin_a = *(begin_a + 1);
                *(begin_a + 1) = temp;
            }  
        } 
        N++;
    }
 
    // вивід сортованого маисву
    i = 0;
    printf("\nВідсортований масив\n");
    while (i < 3) {
        for (begin_a = (int *)A + (i * 3) + 0, end_a = (int *)A + (i * 3) + 3; begin_a != end_a; begin_a++) {
            printf("%d ", *begin_a);
        }
        i++;
    }
    getchar();
 
}

Решение задачи: «Сортировка масива с использованием указателей»

textual
Листинг программы
for (begin_a = (int*)A+0, end_a = (int*)A + 8; begin_a < end_a; begin_a++) {

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

  1. Инициализация начального и конечного указателей для первого вложенного цикла: begin_a и end_a.
  2. Условие цикла while, которое выполняется до тех пор, пока begin_a меньше end_a.
  3. В каждой итерации внутреннего цикла происходит сравнение двух соседних элементов массива A и их последующая перестановка в нужном порядке.
  4. Значение A[i] присваивается переменной temp, которая затем присваивается A[i+1].
  5. Переход к следующей итерации внутреннего цикла.
  6. Переход к следующей итерации внешнего цикла.

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


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

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

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