Advertisement
Guest User

sliyanie.c

a guest
Jun 29th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.25 KB | None | 0 0
  1. #include <stdio.h>                  //  Библиотека, в которой содержатся функции для стандартного ввода-вывода в си
  2. /*
  3.     Реализуйте функцию, осуществляющую слияние трех массивов действительных чисел a, b и с
  4.     произвольной одинаковой длины в массив d таким образом, что 3*k-ый элеиент d берется из a,
  5.     3*k+1-ый элемент d берется из b, а 3*k+2-ой элемент берется из с, где k=0,1,2,... . Массивы
  6.     a, b и с передаются в функцию при помощи указателей
  7. */
  8.  
  9. void sliyanie(const double * a, const double * b, const double * c, int N, double * d) {
  10. //  Данная функция осуществляет слияние трех массивов вещественных чисел в массив d
  11. //  a, b и c - указатели на начало массивов для слияния
  12. //  N - количество элементов в массивах a, b и с
  13. //  d - указатель на начало массива, в который записываем результат слияния
  14.     int i;                          //  Счетчик цикла
  15.     for (i = 0; i < N; i++) {       //  Цикл вдоль массивов a, b и c (длина каждого массива - N)
  16.         d[3*i]      = a[i];         //  Копируем в 3*i - ый элемент i-ый элемент из массива a
  17.         d[3*i+1]    = b[i];         //  Копируем в 3*i+1 - ый элемент i-ый элемент из массива b
  18.         d[3*i+2]    = c[i];         //  Копируем в 3*i+2 - ый элемент i-ый элемент из массива c
  19.     }
  20. }
  21.  
  22. int main () {
  23. //  Создание массивов:
  24.     double a[] = {0, 1, 2};                     //  Произвольный массив a из трех элементов
  25.     double b[] = {3, 4, 5};                     //  Произвольный массив b из трех элементов
  26.     double c[] = {6, 7, 8};                     //  Произвольный массив c из трех элементов
  27.     const int N = sizeof(a) / sizeof(a[0]);     //  Динамически вычисляем N - размер массивов a, b и с:
  28.                                                 //  Память, выделенную под весь массив a, делим на память, выделенную под один элемент a
  29.     double d[3*N];                              //  Создаем массив d из 3*N элементов, чтобы поместить в него массивы a, b и c
  30.    
  31. //  Вызов функции слияния
  32.     sliyanie(a, b, c, N, d);        //  Вызов функции слияния, в которой мы передаем все необходимые параметры.
  33.                                     //  (Имя массива является указателем на начало массива)
  34.    
  35. //  Вывод на экран
  36.     int i;                          //  Счетчик цикла
  37.     for (i = 0; i < 3*N; i++)       //  Цикл по всем элементам массива d (их 3*N штук)
  38.         printf("%0.2f ", d[i]);     //  Выводим каждый элемент через пробел ровно с двумя знаками после запятой
  39.    
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement