C 高精度的減法

2021-09-27 07:53:32 字數 1410 閱讀 3271

高精減:

思緒

判斷被減數與減數的大小

如果被減數不小於減數,開始通過高精減演算法運算

如果被減數小於減數,交換兩個數的位置,先輸出乙個" - ",再通過高精減演算法運算

**如下:

#define _crt_secure_no_warnings

#include

#include

#include

//結構體重命名

typedef

struct

highacc;

void

dealnumber

(highacc *a, highacc *b)

; a->len =

strlen

(a->data)

; b->len =

strlen

(b->data);if

((a->len < b->len)

||(a->len == b->len)

&&strcmp

(a->data, b->data)

<0)

else

}//逆序陣列並將字元轉化為數字

void

inverse

(highacc *h)

}// 高精減演算法

highacc minus

(highacc m_num1, highacc m_num2)

;int i;

int count =0;

for(i =

0; i < m_num1.len; i++

) sum.data[i]

= m_num1.data[i];}

while

((sum.data[

--i]==0

))sum.len = m_num1.len;

return sum;

}//數字再逆序列印(這樣列印出來後,看起來就是順序)

void

printnumber

(highacc h)

}int

main()

; highacc num2 =

; highacc sum;

scanf

("%s%s"

, num1.data, num2.data)

;dealnumber

(&num1,

&num2)

; sum =

minus

(num1, num2)

;printnumber

(sum)

;putchar

('\n');

system

("pause");

return0;

}

高精度減法 C

仿照豎式減法,先對其,再對應位相減。演算法處理時,先比較大小,用大的減小的,對應位再比較大小,用於作為借位符。include include define maxsize 20 define maxoutsize maxsize 2 using namespace std intmain b max...

高精度減法(c )

每當要進行精度較高的運算時,就要用到高精度。下圖是各個型別的數值範圍 如果想不起各個型別佔多少位元組,可以採用下面的方法 printf d d sizeof int sizeof long long 格式為 sizeof 資料型別 可以把值賦值給乙個變數,也可以直接輸出 好了,回到正點。我們先看例題...

高精度減法 c

兩個整數 a,b 第二個可能比第乙個大 結果 是負數要輸出負號 常規思路,不花裡胡哨,通俗易懂。else m 0不用借位 lenb lena while lena 1 因為a字元陣列長度始終不小於b字元陣列長度,所以lenb到0時lena還可能沒到0,此後處理的是a比b高出的位,例如1299 20則...