Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h> // Библиотека, в которой содержатся функции для стандартного ввода-вывода в си
- /*
- Реализуйте функцию, осуществляющую слияние трех массивов действительных чисел a, b и с
- произвольной одинаковой длины в массив d таким образом, что 3*k-ый элеиент d берется из a,
- 3*k+1-ый элемент d берется из b, а 3*k+2-ой элемент берется из с, где k=0,1,2,... . Массивы
- a, b и с передаются в функцию при помощи указателей
- */
- void sliyanie(const double * a, const double * b, const double * c, int N, double * d) {
- // Данная функция осуществляет слияние трех массивов вещественных чисел в массив d
- // a, b и c - указатели на начало массивов для слияния
- // N - количество элементов в массивах a, b и с
- // d - указатель на начало массива, в который записываем результат слияния
- int i; // Счетчик цикла
- for (i = 0; i < N; i++) { // Цикл вдоль массивов a, b и c (длина каждого массива - N)
- d[3*i] = a[i]; // Копируем в 3*i - ый элемент i-ый элемент из массива a
- d[3*i+1] = b[i]; // Копируем в 3*i+1 - ый элемент i-ый элемент из массива b
- d[3*i+2] = c[i]; // Копируем в 3*i+2 - ый элемент i-ый элемент из массива c
- }
- }
- int main () {
- // Создание массивов:
- double a[] = {0, 1, 2}; // Произвольный массив a из трех элементов
- double b[] = {3, 4, 5}; // Произвольный массив b из трех элементов
- double c[] = {6, 7, 8}; // Произвольный массив c из трех элементов
- const int N = sizeof(a) / sizeof(a[0]); // Динамически вычисляем N - размер массивов a, b и с:
- // Память, выделенную под весь массив a, делим на память, выделенную под один элемент a
- double d[3*N]; // Создаем массив d из 3*N элементов, чтобы поместить в него массивы a, b и c
- // Вызов функции слияния
- sliyanie(a, b, c, N, d); // Вызов функции слияния, в которой мы передаем все необходимые параметры.
- // (Имя массива является указателем на начало массива)
- // Вывод на экран
- int i; // Счетчик цикла
- for (i = 0; i < 3*N; i++) // Цикл по всем элементам массива d (их 3*N штук)
- printf("%0.2f ", d[i]); // Выводим каждый элемент через пробел ровно с двумя знаками после запятой
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement