|
这道题目不会啊,帮我编哦,要用C语言的,先在这说谢谢了
2 ?% Y7 N" p' ^% }! z" j H
# z9 s! \4 i' \& i
. Z/ l% j4 r4 Z4 ]4 ~课程设计题目:长整数四则运算。; [% R a% k) E) j5 I
问题描述:设计一个实现任意长的整数进行加法运算的演示程序。' j8 k, ~6 Z, E# c. v1 [: v
基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -(2^15 - 1)~(2^15 - 1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
- z$ _) L+ z# a测试数据:* I! ? L5 P/ W& n
(1)0;0;应输出“0”。( L4 A2 n+ [) d ~) V
(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。8 ?8 E: o- G* v
(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。( G; t8 O* G3 |/ A+ Q
(4)1,0001,0001;-1,0001,0001;应输出“0”。
' N3 \8 e! ?) Z7 ?(5)1,0001,0001;-1,0001,0000;应输出“1”。4 s( k0 Z3 r; z, I1 a" ~6 V& {
(6)-9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998”。
$ N; F- Q0 `* Z! q7 z9 A: \(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。
7 ^1 y) I- g# L/ F5 S实现提示:
" W6 c a! T' N: n3 r4 w(1)每个结点中可以存放的最大整数为32767,才能保证两数相加不会溢出,但若这样存放,即相当于按32768进制存放,在十进制与32768进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的4位,即不超过9999的非负整数,整个链表表示为万进制。2 o, v. W- R( ]/ n
(2)可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结) d" }- L. i0 \6 M b
/ o: x3 o2 H! ^" A7 S' }
点数目。相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中是简化程序结构的一种方法。不能给长整数位数规定上限。 |
|