freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告長整型數(shù)四則運(yùn)算(編輯修改稿)

2025-04-19 02:18 本頁面
 

【文章內(nèi)容簡介】 ERROR。cdata++。}return OK。}Status UnsignedSub(LongInt c,LongInt a,LongInt b)第 10 頁 共 40 頁{ /*無符號數(shù)相減*/short diff,borrow=0。LongIntNode *pa,*pb,*pc,*s。pa = aprior。pb = bprior。while(pa!=a amp。amp。 pb!=b){diff = padata borrow pbdata。if (diff 0 ){borrow = 1。 diff += 10000。}else borrow = 0。if (!InsFirst(c,diff)) return ERROR。pa = paprior。pb = pbprior。cdata++。}while(pa!=a){diff = padata borrow。if (diff 0 ){borrow = 1。 diff += 10000。}else borrow = 0。if (!InsFirst(c,diff)) return ERROR。pa = paprior。cdata++。}第 11 頁 共 40 頁if(borrow || pb!=b) return PleaseExchange。/* 不夠減,提請調(diào)用程序交換 a,b */pc = cnext。while (pcdata == 0 amp。amp。 pcnext != c){/*相減可能造成前幾節(jié)數(shù)據(jù)為 0,需要?jiǎng)h除,結(jié)果為零時(shí)不能將0 刪除完*/s = pc。 pc = pcnext。cnext = pc。pcprior = c。free(s)。cdata。}return OK。}void add(LongInt c,LongInt a,LongInt b){ /*加法*/if ((adata * bdata) 0) { /*兩數(shù)同號,則執(zhí)行無符號加法,零為當(dāng)成正數(shù)處理*/UnsignedAdd(c,a,b)。cdata *= (adata=0)?1:1。}第 12 頁 共 40 頁else /*兩數(shù)異號,則執(zhí)行無符號減法*/{ /*總是用絕對值大的數(shù)減絕對小的數(shù)*/if(UnsignedSub(c,a,b) == PleaseExchange){ /* a 不夠 b 減,則交換 a,b 的順序再減*/ClearList(c)。UnsignedSub(c,b,a)。cdata *= (bdata=0)?1:1。}else/* a 夠 b 減 */{cdata *= (adata=0)?1:1。}}}void sub(LongInt c,LongInt a,LongInt b){ /*減法*/bdata *= 1。add(c,a,b)。bdata *= 1。}第 13 頁 共 40 頁void mul(LongInt c,LongInt a,LongInt b){long product,carry=0。 //進(jìn)位short sum。LongIntNode *pa,*pb,*pcend,*pccur,*pc,*s。pa = aprior。 /*從 a 的尾結(jié)點(diǎn),即最后一個(gè) 4 位組開始*/pcend = c。 /*記錄 a 的每一組與 b 相乘時(shí)最低位應(yīng)加到積的哪一組之前*/while(pa!=a) /*只要 a 中還有結(jié)點(diǎn)未納入運(yùn)算,則循環(huán)*/{if (padata == 0) /*如果 a 的當(dāng)前 4 位組為 0,則直接加 0*/{InsFirst(c,0)。cdata++。}else{pccur = pcendprior。/*記錄乘數(shù)應(yīng)加到積的哪一組*/pb = bprior。 /*取 b 的每組與 a 的當(dāng)前組相乘*/while(pb!=b){ /*特別注意兩個(gè) 09999 以內(nèi)的數(shù)相乘需要用 long 來記錄,否則會有溢出*/第 14 頁 共 40 頁product = carry + (long)padata * (long)pbdata。carry = product / 10000。/*進(jìn)位*/product = product % 10000。/*余數(shù),也即當(dāng)前組的值 */if (pccur == c) /*需要新的結(jié)點(diǎn)來存放數(shù)據(jù)*/{InsFirst(c,(short)product)。pccur = cnext。cdata++。}else /*以前的運(yùn)算已經(jīng)插入過本 4 位組,則增加到當(dāng)前組上*/{sum = pccurdata + (short)product。if (sum 9999){carry++。 sum = 10000。}pccurdata = sum。}pccur = pccurprior。 /*移動(dòng)乘積數(shù)的當(dāng)前指針*/pb = pbprior。 /*移動(dòng)被乘數(shù)的當(dāng)前指針*/}/*如果還有進(jìn)位,則加上去 */if(carry0) InsFirst(c,(short)carry)。carry = 0。cdata++。/*清空進(jìn)位器,并將 4 位數(shù)組數(shù)加 1*/}第 15 頁 共 40 頁pcend = pcendprior。 /*乘積數(shù)的最低位上移一組*/pa = paprior。 /*乘數(shù)上移一組*/}cdata *= ((adata * bdata)=0)?1:1。pc = cnext。while (pcdata == 0 amp。amp。 pcnext != c){ /*相乘可能造成前幾節(jié)數(shù)據(jù)為 0,需要?jiǎng)h除,但結(jié)果為零時(shí)又不能將 0 刪除完*/s = pc。 pc = pcnext。cnext = pc。pcprior = c。free(s)。cdata。}}void Addn(LongInt c, short n){ /*一個(gè)正的長整型加一個(gè)最大為 20220 的正數(shù)*/short carry = n,sum。LongIntNode *pc。pc = cprior。第 16 頁 共 40 頁while(carry != 0 amp。amp。 pc != c){sum = pcdata + carry。carry = sum / 10000。sum = sum % 10000。pcdata = sum。pc = pcprior。}while(carry != 0)/*如果進(jìn)位不為零說明需要新的結(jié)點(diǎn)*/{sum = carry。carry = sum / 10000。sum = sum % 10000。InsFirst(c,sum)。cdata++。}}Status div(LongInt c,LongInt a,LongInt b)/*整除*/{ LongInt d,e。short i = 0,EnoughSub。第 17 頁 共 40 頁short adata = adata, bdata = bdata。if(bdata == 1 amp。amp。 bnextdata == 0) return OVERFLOW。if (adata 0) adata *= 1。if (bdata 0) bdata *= 1。InitList(amp。d)。InitList(amp。e)。 /*使用臨時(shí)長整型數(shù)*/CopyList(a,e)。 /* e = a */EnoughSub = UnsignedSub(d,e,b)。 /* d = e b */while(EnoughSub == OK){i++。if (i == 20220)/*多次相減后再才保存 */{Addn(c,i)。i = 0。}ClearList(e)。CopyList(d,e)。ClearList(d)。EnoughSub = UnsignedSub(d,e,b)。}Addn(c,i)。/*將最后的尾數(shù)補(bǔ)上*/adata = adata。 bdata = bdata。cdata *= ((adata*bdata = 0)?1:1)。DestroyList(amp。d)。DestroyList(amp。e)。第 18 頁 共 40 頁return OK。}void facto
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1