|
这道题目不会啊,帮我编哦,要用C语言的,先在这说谢谢了 T- j7 A7 n8 @ ?
. ~- z7 c, ^; ]7 c' x( Z- w: T4 P" Y- w
s6 k. {% H! W3 e课程设计题目:长整数四则运算。( z8 m5 y I- O4 F4 n8 ?; W, r+ R7 X
问题描述:设计一个实现任意长的整数进行加法运算的演示程序。8 `# p4 R* ~( D5 j2 e5 p
基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -(2^15 - 1)~(2^15 - 1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
B% ]8 r, v1 t测试数据:
# c% X. s9 s) G' z ]; K6 ^. h* c. Q(1)0;0;应输出“0”。
4 B) P4 z1 Z( m# o(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。, u, {3 e; m% k) M
(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。
J/ T; Y0 U$ s/ t. o (4)1,0001,0001;-1,0001,0001;应输出“0”。# t6 j* {% m$ F @) K
(5)1,0001,0001;-1,0001,0000;应输出“1”。' \' W \1 Y* Z! {. V
(6)-9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998”。+ r6 L$ T9 a' V/ ^% G: k* ~
(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。0 {& Q6 \/ E* l0 y# i8 L% d: P
实现提示:* G! J/ ^) i+ B0 b9 r/ z
(1)每个结点中可以存放的最大整数为32767,才能保证两数相加不会溢出,但若这样存放,即相当于按32768进制存放,在十进制与32768进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的4位,即不超过9999的非负整数,整个链表表示为万进制。
$ s6 g+ q, O+ P(2)可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结2 Y0 r' {) t* J
& a& ?+ J3 F* @1 f" F
点数目。相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中是简化程序结构的一种方法。不能给长整数位数规定上限。 |
|