|
这道题目不会啊,帮我编哦,要用C语言的,先在这说谢谢了
( X; \2 [- p3 A7 H# z8 S- ^7 [; Q
7 e0 c Q# p, R; x; `- P) K
- r$ [4 V& q. r+ ~8 A; s3 R课程设计题目:长整数四则运算。( A6 C$ O, ~9 X0 l( }
问题描述:设计一个实现任意长的整数进行加法运算的演示程序。% h; E1 k1 Q* b" ?/ `3 M; N+ j p
基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -(2^15 - 1)~(2^15 - 1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
2 M- _) c) w0 v) }测试数据:
0 f( V( Q4 `! _- T(1)0;0;应输出“0”。
I; c) K1 V0 j0 g; Q(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。& N1 U f* [9 E( W0 e" E
(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。
. y, k/ e0 a A (4)1,0001,0001;-1,0001,0001;应输出“0”。
: Y! m, k' \9 l0 \# R7 s$ F9 n(5)1,0001,0001;-1,0001,0000;应输出“1”。% h: \" n R# U" T3 Z- G; w
(6)-9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998”。
3 |: S) w+ D( F; h' |% B(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。
4 j& q6 ~% }# h9 K/ g) o% J实现提示:& {6 Q+ H- [5 M" F- S
(1)每个结点中可以存放的最大整数为32767,才能保证两数相加不会溢出,但若这样存放,即相当于按32768进制存放,在十进制与32768进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的4位,即不超过9999的非负整数,整个链表表示为万进制。% i- k \: L: s* m- Q+ d
(2)可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结4 z2 i7 Z ^3 I' U u
' `9 u8 Z6 h* m+ a5 X! S点数目。相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中是简化程序结构的一种方法。不能给长整数位数规定上限。 |
|