亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C程序查找兩個數(shù)字的最大公因數(shù)(GCD)

C 語言編程實(shí)例大全

使用循環(huán)和決策語句以不同方式計(jì)算兩個整數(shù)(正整數(shù)和負(fù)整數(shù))的最大公因數(shù)的示例。

要理解此示例,您應(yīng)該了解以下C語言編程主題:

兩個整數(shù)的HCF或GCD(最大公因數(shù))是可以精確地將兩個數(shù)相除(沒有余數(shù))的最大整數(shù)。

在C編程中,有很多方法可以找到最大公約數(shù)。

例1:最大公因數(shù)使用for循環(huán)和if語句

#include <stdio.h>
int main()
{
    int n1, n2, i, gcd;

    printf("輸入兩個整數(shù): ");
    scanf("%d %d", &n1, &n2);

    for(i=1; i <= n1 && i <= n2; ++i)
    {
        // 檢查i是否是兩個整數(shù)的因數(shù)
        if(n1%i==0 && n2%i==0)
            gcd= i;
    }

    printf("G.C.D of %d and %d is %d", n1, n2, gcd);

    return 0;
}

在這個程序中,用戶輸入的兩個整數(shù)存儲在變量n1和n2中。然后循環(huán)for,直到i小于n1和n2。

在每次迭代中,如果n1和n2都可以被i整除,則將i的值分配給gcd。

當(dāng)for循環(huán)完成時,兩個數(shù)的最大公約數(shù)被存儲在變量gcd中。

示例2:最大公因數(shù)使用while循環(huán)和if ... else語句

#include <stdio.h>
int main()
{
    int n1, n2;
    
    printf("輸入兩個正整數(shù): ");
    scanf("%d %d",&n1,&n2);

    while(n1!=n2)
    {
        if(n1 > n2)
            n1 -= n2;
        else
            n2 -= n1;
    }
    printf("最大公因數(shù) = %d",n1);

    return 0;
}

輸出結(jié)果

輸入兩個正整數(shù): 81
153
最大公因數(shù) = 9

這是找到最大公因數(shù)的更好方法。在此方法中,從較大的整數(shù)中減去較小的整數(shù),然后將結(jié)果分配給保存較大整數(shù)的變量。這個過程一直持續(xù)到n1和n2相等。

僅當(dāng)用戶輸入正整數(shù)時,以上兩個程序才能按預(yù)期工作。這是第二個示例的一些修改,可以找到正整數(shù)和負(fù)整數(shù)的最大公因數(shù)。

例3:正負(fù)數(shù)均為最大公因數(shù)

#include <stdio.h>
int main()
{
    int n1, n2;

    printf("輸入兩個整數(shù): ");
    scanf("%d %d",&n1,&n2);

    // 如果用戶輸入的是負(fù)數(shù),則該數(shù)字的符號將更改為正數(shù)
    n1 = ( n1 > 0) ? n1 : -n1;
    n2 = ( n2 > 0) ? n2 : -n2;

    while(n1!=n2)
    {
        if(n1 > n2)
            n1 -= n2;
        else
            n2 -= n1;
    }
    printf("最大公因數(shù) = %d",n1);

    return 0;
}

輸出結(jié)果

輸入兩個整數(shù): 81
-153
最大公因數(shù) = 9

您還可以使用遞歸來查找最大公因數(shù)。

C 語言編程實(shí)例大全