Объединить два кода в один - 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;
}
Объяснение кода листинга программы
- Объединение двух массивов в один.
- Сортировка массива методом пузырька.
- Вывод отсортированного массива на экран.
- Ввод значений массива с клавиатуры.
- Использование операторов указателей для работы с массивами.
- Сравнение элементов массива и перестановка их местами при необходимости.
- Использование функции scanf для ввода числовых значений.
- Объявление и инициализация массивов.
- Использование цикла for для обхода элементов массива.
- Использование условного оператора if для сравнения элементов массива.
- Использование оператора присваивания = для перестановки элементов массива.
- Использование функции printf для вывода значений массива.
- Использование функции getch для обработки нажатий клавиш.
- Возврат значения 0 для успешного завершения программы.
- Использование операторов < и > для сравнения элементов массива.
- Использование оператора * для доступа к элементам массива через указатель.
- Использование оператора + для доступа к элементам массива с смещением.
- Использование оператора -- для уменьшения значения индекса массива.
- Объявление и инициализация указателей на массив.
- Использование оператора -- для уменьшения значения указателя.