Объединить два кода в один - C (СИ)

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

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

Здравствуйте! Помогите пожалуйста обьеденить два кода в СИ в один. Программы одинаковые, только одна написана без указателей, а вторая с указателями. Надо эти два кода обьеденить в один: чтобы массив вводился один раз, а ответов программа выдавала два: один ответ программы без указателей, второй ответ программы с указателями. Помогите, пожалуйста! Спасибо.
#include <conio.h>
#include <stdio.h>
#define n 15
int main(void)
{
    int m[n];
    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();
    return 0;
}
#include <conio.h>
#include <stdio.h>
#define n 15
int main(void)
{
    int m[n], *mp, *mq;
    printf("Bedute 15 elemeHtoB macuBa\n");
    
    for(mp = m; mp < m + n; mp++)
    {
        printf("mass[%ld] = ", mp - m);
        scanf("%d", mp);
    }

    for (mp = m + n - 1; mp >= m + 1; mp--) 
        for (mq = m; mq < mp; mq++)
            if (*mq > *(mq + 1)) {
                int foo = *mq;
                *mq = *(mq + 1);
                *(mq + 1) = *mq;
            }
    printf("\n");
 
    for(mp = m; mp < m + n; mp++)
        printf(" %d ", *mp);     
    getch();
    return 0;
}

Решение задачи: «Объединить два кода в один»

textual
Листинг программы
#include <conio.h>
#include <stdio.h>
#define n 15
int main(void)
{
    int m[n], m1[n], *mp, *mq;
    printf("Bedute 15 elemeHtoB macuBa\n");
    for(int i = 0; i < n; i++)
    {
        printf("mass[%d] = ", i);
        scanf("%d", &m[i]);    
        m1[i]=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]);
    // 2-ой вариант
        for (mp = m1 + n - 1; mp >= m1 + 1; mp--) 
        for (mq = m1; mq < mp; mq++)
            if (*mq > *(mq + 1)) {
                int foo = *mq;
                *mq = *(mq + 1);
                *(mq + 1) = *mq;
            }
    printf("\n");
 
    for(mp = m; mp < m + n; mp++)
        printf(" %d ", *mp);     
    
    getch();
    return 0;
}

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

  1. Объединение двух массивов в один.
  2. Сортировка массива методом пузырька.
  3. Вывод отсортированного массива на экран.
  4. Ввод значений массива с клавиатуры.
  5. Использование операторов указателей для работы с массивами.
  6. Сравнение элементов массива и перестановка их местами при необходимости.
  7. Использование функции scanf для ввода числовых значений.
  8. Объявление и инициализация массивов.
  9. Использование цикла for для обхода элементов массива.
  10. Использование условного оператора if для сравнения элементов массива.
  11. Использование оператора присваивания = для перестановки элементов массива.
  12. Использование функции printf для вывода значений массива.
  13. Использование функции getch для обработки нажатий клавиш.
  14. Возврат значения 0 для успешного завершения программы.
  15. Использование операторов < и > для сравнения элементов массива.
  16. Использование оператора * для доступа к элементам массива через указатель.
  17. Использование оператора + для доступа к элементам массива с смещением.
  18. Использование оператора -- для уменьшения значения индекса массива.
  19. Объявление и инициализация указателей на массив.
  20. Использование оператора -- для уменьшения значения указателя.

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


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

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

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