Из двух упорядоченных массивов составить третий упорядоченный массив - C (СИ)
Формулировка задачи:
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
// пузырьковая сортировка
void sort(int *a, int max)
{
for (int i=0; i<max; i++)
for (int j=max-1; j>i; j--)
if (a[j]< a[j-1])
{
int t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
int main(int argc, char *argv[])
{
int n=0,m=0;
//ввод количества элементов
printf("vvedite kolichestvo elementov\n");
scanf("%d",&n);
printf ("vvedite elementi\n");
//создание массива
int *a = new int[n];
//считывание элементов массива
for(int i=0; i<n; ++i)
{
scanf ("%d",&a[i]);
}
//ввод количества элементов
printf ("vvedite kolichestvo elementov\n");
scanf ("%d",&m);
printf ("vvedite elementi\n");
//создание массива
int *b = new int[m];
//считывание элементов массива
for(int i=0; i<m; ++i)
{
scanf ("%d",&b[i]);
}
//создание нового массива (слияние)
int *c=new int [n+m];
//первый массив
for(int i=0; i<n; ++i)
{
c[i]=a[i];
}
//второй массив
for(int i=n; i<n+m; ++i)
{
c[i]=b[i-n];
}
sort(c,n+m);
for(int i=0; i<n+m; ++i)
{
printf("%d ", c[i]);
}
return 0;
}Решение задачи: «Из двух упорядоченных массивов составить третий упорядоченный массив»
textual
Листинг программы
#include <iostream>
#include <string>
#include <algorithm>
class T
{
public:
void operator()(char f)
{
std::cout<<f;
}
};
int main()
{
std::string Str="Hello, world!";
std::for_each(Str.begin(), Str.end(), T());
std::cout<<std::endl;
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с потоками вывода, строками и алгоритмами
- Создание класса T, который будет использоваться в функции for_each
- В функции main создание строки Str и вывод её содержимого в консоль с помощью функции for_each и объекта T
- Вывод символа новой строки с помощью функции cout
- Завершение функции main и программы в целом