Функция iterateN заполняет массив a из n - C (СИ)

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

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

Написать функцию, которая использует указатели на функцию. Обычно, к ней нужно также написать функции, которые следует передать ей в каче- стве аргументов. В программе нужно продемонстрировать её использование с несколькими различными функциями в качестве параметров.
Листинг программы
  1. void iterateN (int *a, int n, int val, int (*f) (int x));
  2. int succ (int x);
  3. int mply2 (int x);
Функция iterateN заполняет массив a из n. Значение первого элемента бе- рётся из аргумента val, значения последующих элементов получается из зна- чения предыдущего элемента, после вызова для него функции f. Функция succ прибавляет единицу к своему аргументу.
Листинг программы
  1. int n = 5, array[n];
  2. iterateN(array, n, 1, succ); // 1 2 3 4 5
Функция mply2 домнажает аргументу на два.
Листинг программы
  1. int n = 5, array[n];
  2. iterateN(array, n, 1, succ); // 1 2 4 8 16

Решение задачи: «Функция iterateN заполняет массив a из n»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #define N 5
  4. /*------------------------*/
  5. int succ (int x)
  6. {
  7. return ++x;
  8. }
  9. /*------------------------*/
  10. int mply2 (int x)
  11. {
  12. return x*=2;
  13. }
  14. /*------------------------*/
  15. void iterateN (int *a, int n, int val, int (*f) (int x))
  16. {
  17.   int *b = a + n;
  18.   int *c = a;
  19.   *c = val;
  20.   for( ; ++c != b; ) *c = (*f)(*(c - 1));
  21. }
  22. /*------------------------*/
  23. int main ( void )
  24. {
  25.   setlocale(LC_ALL,"RU");
  26.   int d[N];
  27.   iterateN(d, N, 2, succ);
  28.   int i;
  29.   printf("Значения массива после вызова функ. iterateN с одним из аргументов succ:\n");
  30.   for(i = 0; i < N; i++)printf("%d ", d[i]);
  31.   iterateN(d, N, 2, mply2);
  32.   printf("\nЗначения массива после вызова функ. iterateN с одним из аргументов mply2:\n");
  33.   for(i = 0; i < N; i++)printf("%d ", d[i]);
  34.   return 0;
  35. }

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


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

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

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы