Сортировка масива с использованием указателей - 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++) {
Объяснение кода листинга программы
- Инициализация начального и конечного указателей для первого вложенного цикла:
begin_a
иend_a
. - Условие цикла while, которое выполняется до тех пор, пока
begin_a
меньшеend_a
. - В каждой итерации внутреннего цикла происходит сравнение двух соседних элементов массива
A
и их последующая перестановка в нужном порядке. - Значение
A[i]
присваивается переменнойtemp
, которая затем присваиваетсяA[i+1]
. - Переход к следующей итерации внутреннего цикла.
- Переход к следующей итерации внешнего цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д