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

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

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

Мне надо изменить код используя указатели, как это сделать? Подскажите, пожалуйста! вот сам код:
int m[n];
        clrscr();
        printf("Bedute 15 elemeHtoB macuBa\n");
        for(int i = 0; i < n; i++)
        {
                printf("mass[%d] = ", i);
                scanf("%d", &m[i]);
        }
        for(int i = n - 1; i >= 1; i--)
          for(int j = 0; j < i; j++)
          {
           if(m[j] > m[j+1])
           {
                  int foo = m[j];
                  m[j] = m[j+1];
                  m[j+1] = foo;
           }
          }
        printf("\n");
        for(int i = 0; i < n; i++)
                printf(" %d ", m[i]);
        getch();

Решение задачи: «Изменить код используя указатели»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
    
#define SWAP(a, b) ({ int t = *a; *a = *b; *b = t; })
 
int main(void){
    int * arr, * i, * j, size;
    
    printf("Size: ");
    scanf("%d", &size);
    if ( ( arr = (int*)malloc(sizeof(int) * size) ) == NULL ){
        perror("malloc");
        exit(1);
    }
    
    for ( i = arr; i < arr + size; ++i ){
        printf("Array[%d] = ", i - arr);
        scanf("%d", i);
    }
    
    for ( i = arr + size - 1; i > arr; --i )
        for ( j = arr; j < i; ++j )
            if ( *j > *i )
                SWAP(i, j);
    
    for ( i = arr; i < arr + size; ++i )
        printf("%d ", *i);
    printf("\n");
    
    free(arr);
    exit(0);
}

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

  1. Программа запрашивает у пользователя размер массива и сохраняет его в переменной size.
  2. С помощью функции malloc выделяется память под массив целых чисел, и указатель на первый элемент массива сохраняется в переменной arr.
  3. Затем программа заполняет массив числами, которые пользователь вводит с клавиатуры.
  4. После заполнения массива программа сортирует его методом сортировки пузырьком.
  5. Затем программа выводит отсортированный массив на экран.
  6. После вывода массива программа освобождает память, выделенную под массив, с помощью функции free.
  7. Программа завершает свое выполнение и возвращает 0.

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


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

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

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