長(zhǎng)整數(shù)加減運(yùn)算代碼_第1頁(yè)
長(zhǎng)整數(shù)加減運(yùn)算代碼_第2頁(yè)
長(zhǎng)整數(shù)加減運(yùn)算代碼_第3頁(yè)
長(zhǎng)整數(shù)加減運(yùn)算代碼_第4頁(yè)
長(zhǎng)整數(shù)加減運(yùn)算代碼_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、大作業(yè)1實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:長(zhǎng)整數(shù)加減運(yùn)算#include<iostream>using namespace std;struct Number int data; struct Number *next; struct Number *prior;*number1,*number2;void CreateList(Number *&L) /創(chuàng)建長(zhǎng)整數(shù) Number *s,*r; char x; L=(Number *)malloc(sizeof(Number); L->next=L->prior=NULL; r=L; x=getchar(); while(x!=

2、'n'). if(x>='0'&&x<='9') s=(Number *)malloc(sizeof(Number); s->data=x-'0' r->next=s; s->prior=r; r=s; x=getchar(); ; r->next=NULL;void PrintList(Number *L) /輸出長(zhǎng)整數(shù) Number *p=L->next; while(p!=NULL) cout<<p->data; p=p->next; cout

3、<<endl;void PlusList(Number *L1,Number *L2,char a,char m,char n) /兩個(gè)長(zhǎng)整數(shù)加減運(yùn)算 Number *p,*q,*r,*p1,*q1; int i=0,j=0; while(L1->next!=NULL) /將指針指向第一個(gè)長(zhǎng)整數(shù)的尾節(jié)點(diǎn)并算出它的長(zhǎng)度i p=L1->next; L1->next=L1->next->next; i+; while(L2->next!=NULL) /將指針指向第二個(gè)長(zhǎng)整數(shù)的尾節(jié)點(diǎn)并算出它的長(zhǎng)度j q=L2->next; L2->next=

4、L2->next->next; j+; if(a='+'&&m='+'&&n='+'|a='+'&&m='-'&&n='-'|a='-'&&m='+'&&n='-'|a='-'&&m='-'&&n='+') /正加正,負(fù)加負(fù),正減負(fù),負(fù)減正 if(i>j) /當(dāng)

5、第一個(gè)長(zhǎng)整數(shù)的長(zhǎng)度大于第二個(gè)while(i!=0) while(j!=0) if(p->data+q->data)>9) /當(dāng)兩數(shù)相加大于向前一位進(jìn)一p->data=p->data+q->data-10; p->prior->data=p->prior->data+1; else p->data=p->data+q->data; p=p->prior; q=q->prior; j-;i-; if(p->data>9&&i>1) /兩數(shù)相加大于9向前一位進(jìn)一,當(dāng)最高位不大于

6、9則不進(jìn)一p->data=p->data-10; p->prior->data=p->prior->data+1; r=p; p=p->prior; i-; else if(i=j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度等于第二個(gè)while(i!=0) if(p->data+q->data)>9&&i>1) /兩數(shù)相加大于向前一位進(jìn)一,當(dāng)最高位大于則不進(jìn)一p->data=p->data+q->data-10; p->prior->data=p->prior->data+1; else

7、p->data=p->data+q->data; r=p; p=p->prior; q=q->prior; i-; else /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度小于第二個(gè)while(j!=0) while(i!=0) if(p->data+q->data>9) /當(dāng)兩數(shù)相加大于向前一位進(jìn)一q->data=q->data+p->data-10; q->prior->data=q->prior->data+1; else q->data=p->data+q->data; p=p->prior; q

8、=q->prior; j-;i-; if(q->data>9&&j>1) /兩數(shù)相加大于向前一位進(jìn)一,當(dāng)最高位大于則不進(jìn)一q->data=q->data-10; q->prior->data=q->prior->data+1; r=q; q=q->prior; j-; if(a='-'&&m='+'&&n='+') /正減正 if(i>j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度大于第二個(gè)時(shí),用第一個(gè)長(zhǎng)整數(shù)減第二個(gè)while(i!=0) whi

9、le(j!=0) if(p->data<q->data) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的數(shù)小于第二個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一p->data=p->data-q->data+10; p->prior->data=p->prior->data-1; else p->data=p->data-q->data; p=p->prior; q=q->prior; j-;i-; if(p->data<0&&i>1) p->data=p->data+10; p->prior-&g

10、t;data=p->prior->data-1; r=p; if(p->data=0&&i=1) r=p->next; break; p=p->prior; i-; else if(i=j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度等于第二個(gè)的長(zhǎng)度int c=0,h=i,k=j; p1=p;q1=q; while(i!=1) p1=p1->prior; q1=q1->prior; i-; while(j!=0) /判斷兩個(gè)長(zhǎng)整數(shù)的大小if(p1->data>q1->data) c=1; break; else if(p1->dat

11、a<q1->data) c=0; break; else if(p1->data=q1->data&&j=1)c=1; else p1=p1->next; q1=q1->next; j-; if (c=1) /第一個(gè)長(zhǎng)整數(shù)大于第二個(gè)長(zhǎng)整數(shù),用第一個(gè)長(zhǎng)整數(shù)減去第二個(gè)while(h!=0) if(p->data<q->data) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的數(shù)小于第二個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一p->data=p->data-q->data+10; p->prior->data=p->prior->

12、;data-1; else p->data=p->data-q->data; r=p; p=p->prior; q=q->prior; h-; while(r->data=0&&k>1) k-;r=r->next; if(c=0) /第一個(gè)長(zhǎng)整數(shù)大于第二個(gè)長(zhǎng)整數(shù)while(h!=0) if(p->data>q->data&&h>1) /當(dāng)?shù)诙€(gè)長(zhǎng)整數(shù)的數(shù)小于第一個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一q->data=q->data-p->data+10; q->prior->

13、;data=q->prior->data-1; else q->data=q->data-p->data; r=q; p=p->prior; q=q->prior; h-; while(r->data=0) r=r->next; r->data=-r->data; else /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度小于第二個(gè)while(j!=0) while(i!=0) if(p->data>q->data) /當(dāng)?shù)诙€(gè)長(zhǎng)整數(shù)的數(shù)小于第一個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一q->data=q->data-p->data

14、+10; q->prior->data=q->prior->data-1; else q->data=q->data-p->data; p=p->prior; q=q->prior; j-;i-; if(q->data<0&&j>1) q->data=q->data+10; q->prior->data=q->prior->data-1; r=q; if(r->data=0&&j=1) r=r->next; r->data=-r->

15、data; break; if(r->data!=0&&j=1) r->data=-r->data; q=q->prior; j-; if(a='-'&&m='-'&&n='-') /負(fù)減負(fù) if(i>j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度大于第二個(gè)時(shí),用第一個(gè)長(zhǎng)整數(shù)減第二個(gè)while(i!=0) while(j!=0) if(p->data<q->data) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的數(shù)小于第二個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一p->data=p->data-q

16、->data+10; p->prior->data=p->prior->data-1; else p->data=p->data-q->data; p=p->prior; q=q->prior; j-;i-; if(p->data<0&&i>1) p->data=p->data+10; p->prior->data=p->prior->data-1; r=p; if(p->data=0&&i=1) r=p->next; break; p=

17、p->prior; i-; cout<<'-' /kkkelse if(i=j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度等于第二個(gè)的長(zhǎng)度int c=0,h=i,k=j; p1=p;q1=q; while(i!=1) p1=p1->prior; q1=q1->prior; i-; while(j!=0) /判斷兩個(gè)長(zhǎng)整數(shù)的大小if(p1->data>q1->data) c=1; break; else if(p1->data<q1->data) c=0; break; else if(p1->data=q1->data

18、&&j=1) c=1; else p1=p1->next; q1=q1->next; j-; if (c=1) /第一個(gè)長(zhǎng)整數(shù)大于第二個(gè)長(zhǎng)整數(shù),用第一個(gè)長(zhǎng)整數(shù)減去第二個(gè)while(h!=0) if(p->data<q->data) p->data=p->data-q->data+10; p->prior->data=p->prior->data-1; else p->data=p->data-q->data; r=p; p=p->prior; q=q->prior; h-; w

19、hile(r->data=0&&k>1) k-;r=r->next; cout<<'-'/j if(c=0) /第一個(gè)長(zhǎng)整數(shù)xiao于第二個(gè)長(zhǎng)整數(shù)while(h!=0) if(p->data>q->data&&h>1) /當(dāng)?shù)诙€(gè)長(zhǎng)整數(shù)的數(shù)小于第一個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一q->data=q->data-p->data+10; q->prior->data=q->prior->data-1; else q->data=q->data-p-

20、>data; r=q; p=p->prior; q=q->prior; h-; while(r->data=0) r=r->next; /r->data=r->data;/ww else /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度小于第二個(gè)while(j!=0) while(i!=0) if(p->data>q->data) /當(dāng)?shù)诙€(gè)長(zhǎng)整數(shù)的數(shù)小于第一個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一q->data=q->data-p->data+10; q->prior->data=q->prior->data-1; else q

21、->data=q->data-p->data; p=p->prior; q=q->prior; j-;i-; if(q->data<0&&j>1) q->data=q->data+10; q->prior->data=q->prior->data-1; r=q; if(r->data=0&&j=1) r=r->next; r->data=r->data;/ww break; if(r->data!=0&&j=1)r->data=

22、r->data;/ww q=q->prior; j-; if(a='+'&&m='+'&&n='-') / 正加負(fù)不用改用減法 if(i>j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度大于第二個(gè)時(shí),用第一個(gè)長(zhǎng)整數(shù)減第二個(gè)while(i!=0) while(j!=0) if(p->data<q->data) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的數(shù)小于第二個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一p->data=p->data-q->data+10; p->prior->data=p->prior

23、->data-1; else p->data=p->data-q->data; p=p->prior; q=q->prior; j-;i-; if(p->data<0&&i>1) p->data=p->data+10; p->prior->data=p->prior->data-1; r=p; if(p->data=0&&i=1) r=p->next; break; p=p->prior; i-; else if(i=j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度等于第二個(gè)

24、的長(zhǎng)度int c=0,h=i,k=j; p1=p;q1=q; while(i!=1) p1=p1->prior; q1=q1->prior; i-; while(j!=0) /判斷兩個(gè)長(zhǎng)整數(shù)的大小if(p1->data>q1->data) c=1; break; else if(p1->data<q1->data) c=0; break; else if(p1->data=q1->data&&j=1)c=1; else p1=p1->next; q1=q1->next; j-; if (c=1) /第一個(gè)長(zhǎng)

25、整數(shù)大于第二個(gè)長(zhǎng)整數(shù),用第一個(gè)長(zhǎng)整數(shù)減去第二個(gè)while(h!=0) if(p->data<q->data) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的數(shù)小于第二個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一p->data=p->data-q->data+10; p->prior->data=p->prior->data-1; else p->data=p->data-q->data; r=p; p=p->prior; q=q->prior; h-; while(r->data=0&&k>1) k-;r=r->n

26、ext; if(c=0) /第一個(gè)長(zhǎng)整數(shù)大于第二個(gè)長(zhǎng)整數(shù)while(h!=0) if(p->data>q->data&&h>1) /當(dāng)?shù)诙€(gè)長(zhǎng)整數(shù)的數(shù)小于第一個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一q->data=q->data-p->data+10; q->prior->data=q->prior->data-1; else q->data=q->data-p->data; r=q; p=p->prior; q=q->prior; h-; while(r->data=0) r=r->

27、;next; r->data=-r->data; else /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度小于第二個(gè)while(j!=0) while(i!=0) if(p->data>q->data) /當(dāng)?shù)诙€(gè)長(zhǎng)整數(shù)的數(shù)小于第一個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一q->data=q->data-p->data+10; q->prior->data=q->prior->data-1; else q->data=q->data-p->data; p=p->prior; q=q->prior; j-;i-; if(q->

28、data<0&&j>1) q->data=q->data+10; q->prior->data=q->prior->data-1; r=q; if(r->data=0&&j=1) r=r->next; r->data=-r->data; break; if(r->data!=0&&j=1) r->data=-r->data; q=q->prior; j-; if(a='+'&&m='-'&&

29、;n='+')if(i>j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度大于第二個(gè)時(shí),用第一個(gè)長(zhǎng)整數(shù)減第二個(gè)while(i!=0) while(j!=0) if(p->data<q->data) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的數(shù)小于第二個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一p->data=p->data-q->data+10; p->prior->data=p->prior->data-1; else p->data=p->data-q->data; p=p->prior; q=q->prior; j-;i-; if(p-&

30、gt;data<0&&i>1) p->data=p->data+10; p->prior->data=p->prior->data-1; r=p; if(p->data=0&&i=1) r=p->next; break; p=p->prior; i-; cout<<'-'/gaielse if(i=j) /當(dāng)?shù)谝粋€(gè)長(zhǎng)整數(shù)的長(zhǎng)度等于第二個(gè)的長(zhǎng)度int c=0,h=i,k=j; p1=p;q1=q; while(i!=1) p1=p1->prior; q1=q1-&g

31、t;prior; i-; while(j!=0) /判斷兩個(gè)長(zhǎng)整數(shù)的大小if(p1->data>q1->data) c=1; break; else if(p1->data<q1->data) c=0; break; else if(p1->data=q1->data&&j=1)c=1; else p1=p1->next; q1=q1->next; j-; if (c=1) /第一個(gè)長(zhǎng)整數(shù)大于第二個(gè)長(zhǎng)整數(shù),用第一個(gè)長(zhǎng)整數(shù)減去第二個(gè)while(h!=0) if(p->data<q->data) /當(dāng)?shù)谝?/p>

32、個(gè)長(zhǎng)整數(shù)的數(shù)小于第二個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一p->data=p->data-q->data+10; p->prior->data=p->prior->data-1; else p->data=p->data-q->data; r=p; p=p->prior; q=q->prior; h-; while(r->data=0&&k>1) k-;r=r->next; cout<<'-'/gai if(c=0) /第一個(gè)長(zhǎng)整數(shù)小于第二個(gè)長(zhǎng)整數(shù)while(h!=0)

33、if(p->data>q->data&&h>1) /當(dāng)?shù)诙€(gè)長(zhǎng)整數(shù)的數(shù)小于第一個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一q->data=q->data-p->data+10; q->prior->data=q->prior->data-1; else q->data=q->data-p->data; r=q; p=p->prior; q=q->prior; h-; while(r->data=0) r=r->next; /r->data=r->data;/g else /當(dāng)

34、第一個(gè)長(zhǎng)整數(shù)的長(zhǎng)度小于第二個(gè)while(j!=0) while(i!=0) if(p->data>q->data) /當(dāng)?shù)诙€(gè)長(zhǎng)整數(shù)的數(shù)小于第一個(gè)長(zhǎng)整數(shù)的數(shù),則向前一位借一q->data=q->data-p->data+10; q->prior->data=q->prior->data-1; else q->data=q->data-p->data; p=p->prior; q=q->prior; j-;i-; if(q->data<0&&j>1) q->data=

35、q->data+10; q->prior->data=q->prior->data-1; r=q; if(r->data=0&&j=1) r=r->next; /r->data=r->data;/hh break; if(r->data!=0&&j=1) r->data=r->data;/hh q=q->prior; j-; if(a='+'&&m='-'&&n='-'|a='-'&

36、&m='-'&&n='+') cout<<'-'/控制符號(hào)輸出 if(r->data<10)for(int u=1;r!=NULL;u+) cout<<r->data; r=r->next ;if(u%3=0&&r!=NULL) cout<<',' ; cout<<endl;else for(int u=2;r!=NULL;u+) cout<<r->data; r=r->next ;if(u%3=0&&r!=NULL) cout<<',' ; cout<<endl;int main() char a,m,n; cout<<"請(qǐng)輸入第一個(gè)長(zhǎng)整數(shù),每三個(gè)數(shù)字間添加逗號(hào),并加上+ 或- :"<<endl; for(;) cin>>m; if(m='+'|m='-')break; cout<<"輸入錯(cuò)誤,請(qǐng)加上+ 或- "<<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論