Вывести результат сравнения сумм четных и нечетных чисел - C (СИ)

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

Написать и отладить программу, выполняющую задание. Подпрограмма должна быть рекурсивной. Запрещается работа с глобальными переменными. Используя рекурсивную функцию, составить программу определения величины, указанной в условии задачи. Во всех задачах данные содержатся в одномерных массивах, содержащих N чисел. Задание: результат сравнения сумм четных и нечетных чисел. Прошу помочь с данной задачей, с объяснением если не затруднит, буду бесконечно благодарен!

Код к задаче: «Вывести результат сравнения сумм четных и нечетных чисел - C (СИ)»

textual
#include <stdio.h>
 
int compare(int n, int arr[]) {
   if (n < 0) /* если индекс меньше нуля заканчиваем */
      return 0;
   else
      if ((arr[n] % 2)==0) /* если число чётное значит прибавляем */
         return compare(n-1, arr) + arr[n]; 
      else /* иначе отнимаем */
         return compare(n-1, arr) - arr[n];
}
 
int main(void)
{
   int n, i, result;
   int arr[100] = {0};
   printf("how many numbers? : ");
   scanf("%i", &n); /* величина массива (N) */
 
   puts("\nenter values");
   for (i=0; i<n; i++) {
      printf("%i = ", i+1);
      scanf("%i%*c", &arr[i]);
   } /* заполнение массива */
   
   result = compare (n-1, arr); /* вызов рекурсивной ф-ции */
   /* проверки на результат */
   if (result == 0)
      printf("the sums are equal\n");
   else if (result > 0)
      printf("the sum of even is greater\n");
   else
      printf("the sum of odd is greater\n");
 
   return 0;
}

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


СОХРАНИТЬ ССЫЛКУ
Похожие ответы