Напишите функцию, вычисляющую НОД двух целых чисел - C (СИ)

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

Напишите функцию на языке Си, вычисляющую НОД двух целых чисел
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(void)
{
    int a,b,c,n,i;
    printf("vvedite 2 chisla cherez probel\n");
    scanf("%d%d",&a,&b);
    if ((a>b)&&(b==0)) {printf("net resheniya\n"); system("pause");return 1;}
    if ((a<b) &&(a==0)) {printf("net resheniya\n"); system("pause");return 1;}
    if ((a==0) &&(b==0)) {printf("net resheniya\n"); system("pause");return 1;}
    if (a<b)
    {c=a;
    a=b;
    b=c;
    n=a;}
    else
    { 
    n=b;}
    for (i=n; i>0; i--)
    {
    if (a%i==0)
    if (b%i==0)
    printf(" otvet %d\n",i);}
    system("pause");
    return 0;
}
Вот в принципе Тесты: 7 3:1 24 48:24 98 18:2 Проблема состоит в том если вести 24 и 48 чтоб он выводил только один ответ. Как это сделать?

Код к задаче: «Напишите функцию, вычисляющую НОД двух целых чисел - C (СИ)»

textual
for (i=n; i>0; i--)
    {
    if (a%i==0 && b%i==0){ printf("Naibil`shiy spil`niy dil`nik - %d\n",i); break;}
    
}

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


СОХРАНИТЬ ССЫЛКУ