Найти НОД для одномерного массива, используя алгоритм Евклида - C (СИ)

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

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

Вопрос в том как найти НОД для одномерного массива, используя алгоритм Евклида?

Решение задачи: «Найти НОД для одномерного массива, используя алгоритм Евклида»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. inline int GCD(int __1, int __2)
  4. {
  5.     __1 = abs(__1);
  6.     __2 = abs(__2);
  7.     int buf;
  8.     if(__1 == 0 && __2 == 0)
  9.         return 1;
  10.     if(__1 == 0)
  11.         return __2;
  12.     if(__2 == 0)
  13.         return __1;
  14.     while(__2)
  15.     {
  16.         buf = __1 % __2; __1 = __2; __2 = buf;
  17.     }
  18.     return __1;
  19. }
  20. int main(void)
  21. {
  22.     int arr_size, i, result = 0, tmp;
  23.     printf("Array size: ");
  24.     if(scanf("%d", &arr_size) != 1)
  25.     {
  26.         printf("Incorrect input!\n");
  27.         return -1;
  28.     }
  29.     for(i = 0; i < arr_size; i++)
  30.     {
  31.         printf("arr[%d]=", i);
  32.         if(scanf("%d", &tmp) != 1)
  33.         {
  34.             printf("Incorrect input!\n");
  35.             return -1;
  36.         }
  37.         if(!result)
  38.             result = tmp;
  39.         else
  40.             result = GCD(result, tmp);
  41.     }
  42.     printf("GCD = %d\n", result);
  43.     return 0;
  44. }

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Определяется функция GCD, которая принимает два целых числа и возвращает их НОД
  3. В функции main считывается размер массива и инициализируется переменная result значением 0
  4. Для каждого элемента массива считывается его значение и обновляется переменная result, если текущий элемент является первым ненулевым числом
  5. Если ввод некорректен, выводится сообщение об ошибке и возвращается -1
  6. Выводится сообщение о нахождении НОД и его значение

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


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

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

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

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

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

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