|
这道题目不会啊,帮我编哦,要用C语言的,先在这说谢谢了
+ \* B% _6 a% L! }, p3 Z
! ~7 q m7 {# l# t4 M " V3 [5 Y$ [" w2 U- I4 f
课程设计题目:长整数四则运算。1 L8 Q2 q4 s$ p, v$ A
问题描述:设计一个实现任意长的整数进行加法运算的演示程序。
) H: P2 f2 h5 U/ O o8 q0 J 基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -(2^15 - 1)~(2^15 - 1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
6 W/ d7 _/ z( w3 O& Y7 |测试数据:2 K& [- ]; P6 V0 v
(1)0;0;应输出“0”。. @: ?5 k/ n% v- W) T2 t7 S* |* I1 m: S
(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。
: k( F8 W" w. r- q( | (3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。5 M. O. ?# P$ j- |/ W
(4)1,0001,0001;-1,0001,0001;应输出“0”。
6 A2 E1 t+ n3 q(5)1,0001,0001;-1,0001,0000;应输出“1”。
3 p- u# G2 n# D6 \5 V+ }. G (6)-9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998”。! j2 p$ o# J u* x4 b8 d
(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。
" {$ n' Q- i a. |+ o* K实现提示:! ~6 H e s& x- }. c/ y f
(1)每个结点中可以存放的最大整数为32767,才能保证两数相加不会溢出,但若这样存放,即相当于按32768进制存放,在十进制与32768进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的4位,即不超过9999的非负整数,整个链表表示为万进制。
/ f2 E$ M9 y: P9 h" G(2)可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结
5 P8 @; y+ {$ N3 A# [% r5 S
- G7 r. c5 \. r. N; b/ b点数目。相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中是简化程序结构的一种方法。不能给长整数位数规定上限。 |
|