Сортировка масива с использованием указателей - 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]
. - Переход к следующей итерации внутреннего цикла.
- Переход к следующей итерации внешнего цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д