C語言如何實現大數相加問題,各位高手多多指教

2021-04-20 03:05:48 字數 1494 閱讀 1784

1樓:匿名使用者

可以的。

我曾bai經編寫過100的階乘的程

du序zhi。在這個程式中,dao計算結果達到幾千位,這樣專大屬的資料很明顯是任何資料型別都表示不了的。

不過,你可以把大數用陣列來表示,比如1258746這個數,你用陣列a=來表示,然後對陣列的每一位進行運算。

按照你題目的意思,還應該定義一個大數的加法的函式,類似add(int a, int b, int m, int n);

陣列a,b是兩個表示大數的陣列,m,n是陣列的大小。注意,要從末尾對齊。

以上是我個人的一些意見,你可以搜尋並學習一下我開頭提到的那個程式,即關於大數的階乘,網上應該有很多的資料,對你解題會有幫助的。

請問樓上,實際應用中用的到大數嗎?

double型別可以表示21億大的資料,幾乎可以滿足絕大多數的實際應用了,更何況是微控制器。

這裡討論大數的運算是一種方法、一種思路。

2樓:匿名使用者

樓上的方法也太奢侈了:

」比如1258746這個數,你用陣列 a=來表示,然後對陣列的每專一位進行運算」

屬這樣做的後果是 你一個數字就佔用了一個位元組 要是微控制器的話就掛了(當然,微控制器一般不做這麼大的資料運算)

3樓:匿名使用者

任何型別都有溢位的時候,這個沒法解決。。

非要這樣算可以學彙編那樣,定義幾個變數,分別儲存高中低位數字,自己計算進位。

4樓:匿名使用者

變數的問題,弄成雙精度的

c語言中a的ascii碼加200輸出字元為什麼是> 要詳細講解。我是位初學者,望各位高手多多指教。灰常謝謝啊! 10

5樓:匿名使用者

#include

void main()

//這是c原始碼;地下是i=200+'a'句**的反彙編**

mov eax,0c8h ;把(0c8h 16進位制)200放到eax寄存

器add eax,61h ;eax暫存器加上a的ascii碼值(61h 十六進位制)

;0c8h和61h相加後eax的值為129h即eax的低位地址al的值為29h

mov byte ptr [ebp-4],al

;因為 i是char型 只佔一個位元組 而eax暫存器是四個位元組,所以只把低位元組的al放入到i中。也就是i的值為29h,即ascii碼'(',十進位制41.

6樓:匿名使用者

寫了**實際測試了下。

#include

void main()

列印出的結果分別是「41」 和「)」。

在dos視窗下 確實列印出的那個「)」卻更像是「>」。但實際情況應該是「)」而不是「>」。

7樓:匿名使用者

小a的ascii是97 加200就是297 了,ascii最大是255 怎麼會有297

C語言陣列相加,關於c語言的兩陣列相加問題

m str j str strlen str j 1 rem 改成m str j 0 str strlen str j 1 0 rem 或m str j 48 str strlen str j 1 48 rem 就行了 字元型的數字換成整形的減掉 0 就可以 也就是減48 include stdio...

如何用C語言程式實現 猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了

include void main c語言程式設計 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多 include int main void printf the monkey got ld peachs in first day.n x 1 編寫一個程式,求解猴子吃桃問題。猴子第一天摘下...

如何用c語言fopen函式實現這樣的檔案開啟功能

fopen函式用於開啟檔案並獲取檔案的指標,以便對檔案進行操作。函式原型 file fopen const char path,const char mode 引數 path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。mode有下列幾種形態字串 r 以只讀方式開啟檔案,該檔案必須...