最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言實(shí)現(xiàn)高精度加減法

 更新時(shí)間:2021年05月03日 11:42:22   作者:Grayson_Hunt  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)高精度加減法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)高精度加減法的具體代碼,供大家參考,具體內(nèi)容如下

首先,我們來(lái)看一下C語(yǔ)言中各類(lèi)型的最值:

unsigned int 0~4294967295
int -2147483648~2147483647
unsigned long 0~4294967295
long -2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615

由于C語(yǔ)言所擁有的類(lèi)型不能滿足更高位數(shù)的運(yùn)算,因此需要使用其他方法來(lái)實(shí)現(xiàn)更多位(高精度)的加減;

下面我們使用代碼實(shí)現(xiàn)高精度加減:

1、高精度加法:

#include<stdio.h>
#include<string.h>
int main(void)
{
    int len_max,i;   //len_max用來(lái)記錄最大字符串長(zhǎng)度,以便相加、輸出
    char m[999],n[999];    
    int a[999]={0},b[999]={0},c[999]={0};//初始化為0,方便后續(xù)輸出
    scanf("%s%s",m,n);
    if(strlen(m)>strlen(n))
        len_max=strlen(m);
    else len_max=strlen(n);
    for(i=0;i<strlen(m);i++){    
        a[i]=m[strlen(m)-1-i]-'0';//將低位放前面,高位放后面,以便進(jìn)位
    }
    for(i=0;i<strlen(n);i++){
        b[i]=n[strlen(n)-1-i]-'0';
    }
    int k=0;    //用來(lái)進(jìn)位
    for(i=0;i<=len_max;i++){    //不要忘了“=”
        c[i]=a[i]+b[i]+k;
        k=c[i]/10;
        c[i]%=10;
    }
    int flag=0;    //使用flag判斷最高位并實(shí)現(xiàn)輸出
    for(i=len_max;i>=0;i--){    //倒序輸出
        if(c[i])
            flag=1;
        if(flag)
            printf("%d",c[i]);
    }
    if(!flag) printf("0");  //特判 0;
    return 0;
}

2、高精度減法:

#include<stdio.h>
#include<string.h>
int main(void)
{
    int len_max,i;
    char m[999],n[999],temp[999];
    int a[999]={0},b[999]={0},c[999]={0};
    scanf("%s%s",m,n);
    if(strlen(m)>strlen(n))
        len_max=strlen(m);
    else
        len_max=strlen(n);
    if(strlen(n)>strlen(m)||(strlen(m)==strlen(n)&&strcmp(n,m)>0)){
       //使被減數(shù)大于減數(shù),長(zhǎng)度相同時(shí)需用函數(shù)strcmp判斷大小
        strcpy(temp,m);
        strcpy(m,n);
        strcpy(n,temp);
       //交換數(shù)據(jù)
        printf("-");  //結(jié)果為負(fù)
    }
    for(i=0;i<strlen(m);i++){
        a[i]=m[strlen(m)-1-i]-'0';
    }
    for(i=0;i<strlen(n);i++){
        b[i]=n[strlen(n)-1-i]-'0';
    }
    for(i=0;i<=len_max;i++){
        c[i]=a[i]-b[i];
        if(c[i]<0){
            c[i]+=10;    //向上借位
            a[i+1]--;
        }
    }
    int flag=0;
    for(i=len_max;i>=0;i--){  //逆序打印
        if(c[i])
            flag=1;
        if(flag)
            printf("%d",c[i]);
    }
    if(!flag) printf("0");  //特判!
    return 0;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語(yǔ)言找出數(shù)組中的特定元素的算法解析

    C語(yǔ)言找出數(shù)組中的特定元素的算法解析

    這篇文章主要介紹了C語(yǔ)言中找出數(shù)組中特定元素的算法解析,包括找出數(shù)組中兩個(gè)只出現(xiàn)一次的數(shù)字的方法,需要的朋友可以參考下
    2016-03-03
  • C語(yǔ)言 分支語(yǔ)句詳解分析

    C語(yǔ)言 分支語(yǔ)句詳解分析

    分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。分支結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)姆种дZ(yǔ)句
    2021-10-10
  • C語(yǔ)言中的常量詳解

    C語(yǔ)言中的常量詳解

    本文主要講解C語(yǔ)言 常量,這里整理了 C語(yǔ)言常量的基礎(chǔ)知識(shí),并附代碼示例和示例詳細(xì)講解,希望能幫助開(kāi)始學(xué)習(xí)C 語(yǔ)言的同學(xué)
    2021-09-09
  • C++ Qt繪制時(shí)鐘界面

    C++ Qt繪制時(shí)鐘界面

    大家好,本篇文章主要講的是C++ Qt繪制時(shí)鐘界面,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C++模擬2D牛頓力學(xué)效果的示例代碼

    C++模擬2D牛頓力學(xué)效果的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C++模擬2D牛頓力學(xué)效果,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • C++中四種對(duì)象生存期和作用域以及static的用法總結(jié)分析

    C++中四種對(duì)象生存期和作用域以及static的用法總結(jié)分析

    以下是對(duì)C++中四種對(duì)象生存期和作用域以及static的用法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-09-09
  • C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C語(yǔ)言 指針綜合解析

    C語(yǔ)言 指針綜合解析

    指針可以表示一個(gè)變更的地址,在計(jì)算機(jī)程序中,通常表示內(nèi)存地址,存儲(chǔ)數(shù)據(jù)的地址,下面這篇文章主要給大家綜合的介紹了關(guān)于C語(yǔ)言指針的本質(zhì)與用法
    2021-11-11
  • C語(yǔ)言超詳細(xì)文件操作基礎(chǔ)上篇

    C語(yǔ)言超詳細(xì)文件操作基礎(chǔ)上篇

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的文件操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • C/C++讀寫(xiě)注冊(cè)表中二進(jìn)制數(shù)據(jù)(代碼示例)

    C/C++讀寫(xiě)注冊(cè)表中二進(jìn)制數(shù)據(jù)(代碼示例)

    這篇文章主要介紹了使用Windows API 函數(shù)中的RegOpenKeyEx()函數(shù)和RegSetValueEx()函數(shù)來(lái)實(shí)現(xiàn)對(duì)注冊(cè)表某項(xiàng)寫(xiě)入二進(jìn)制鍵值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

禹城市| 临西县| 崇左市| 临夏县| 潢川县| 澄迈县| 宣恩县| 余江县| 留坝县| 丰宁| 胶州市| 江陵县| 舞钢市| 资源县| 郑州市| 茂名市| 永安市| 彰化县| 宿迁市| 浑源县| 永仁县| 正安县| 平江县| 通江县| 健康| 武威市| 大同市| 密山市| 清涧县| 长岭县| 河北省| 璧山县| 安庆市| 托克逊县| 邛崃市| 金湖县| 红原县| 临猗县| 高安市| 柘城县| 无为县|