Найти наибольший общий делитель - C (СИ)
Формулировка задачи:
Заданные четыре натуральные числа a, b, c, d. Найти их наибольший общий делитель.(через функцию)
Решение задачи: «Найти наибольший общий делитель»
textual
Листинг программы
#include <stdio.h> void swap(int* a, int* b) { int t; t = *a, *a = *b, *b = t; } int gcd(int a, int b) { while (a % b) swap(&(a %= b), &b); return b; } int main() { int a, b, c, d; puts("Input four number:"); scanf("%d%d%d%d", &a, &b, &c, &d); printf("%d", gcd(gcd(gcd(a, b), c), d)); return 0; }
Объяснение кода листинга программы
- Включаем заголовочный файл
для использования функций ввода-вывода - Определяем функцию swap(int, int) для обмена значениями двух указателей на int
- Используем функцию swap(&(a %= b), &b) для обмена значениями переменных a и b, если a не делится на b без остатка
- Возвращаем значение переменной b в качестве наибольшего общего делителя
- Запрашиваем у пользователя ввод четырех чисел с помощью функции scanf
- Вызываем функцию gcd(gcd(gcd(a, b), c), d) для нахождения наибольшего общего делителя четырех чисел
- Выводим результат на экран с помощью функции printf
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д