Найти наибольший общий делитель - C (СИ)

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

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

Заданные четыре натуральные числа a, b, c, d. Найти их наибольший общий делитель.(через функцию)

Решение задачи: «Найти наибольший общий делитель»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void swap(int* a, int* b)
  4. {
  5.     int t;
  6.     t = *a, *a = *b, *b = t;
  7. }
  8.  
  9. int gcd(int a, int b)
  10. {
  11.     while (a % b)
  12.         swap(&(a %= b), &b);
  13.     return b;
  14. }
  15.  
  16. int main()
  17. {
  18.     int a, b, c, d;
  19.     puts("Input four number:");
  20.     scanf("%d%d%d%d", &a, &b, &c, &d);
  21.     printf("%d", gcd(gcd(gcd(a, b), c), d));
  22.     return 0;
  23. }

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

  1. Включаем заголовочный файл для использования функций ввода-вывода
  2. Определяем функцию swap(int, int) для обмена значениями двух указателей на int
  3. Используем функцию swap(&(a %= b), &b) для обмена значениями переменных a и b, если a не делится на b без остатка
  4. Возвращаем значение переменной b в качестве наибольшего общего делителя
  5. Запрашиваем у пользователя ввод четырех чисел с помощью функции scanf
  6. Вызываем функцию gcd(gcd(gcd(a, b), c), d) для нахождения наибольшего общего делителя четырех чисел
  7. Выводим результат на экран с помощью функции printf

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


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

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

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

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

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

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