|
这道题目不会啊,帮我编哦,要用C语言的,先在这说谢谢了
H1 o+ j U" V- M! n9 R1 }7 q
3 h! n. r9 l- ^4 [+ `( f7 d
8 G5 ?& a. D+ u6 }+ D, e4 N8 A$ D课程设计题目:长整数四则运算。. {( M, X; c# u. a( q1 a, Y, ^
问题描述:设计一个实现任意长的整数进行加法运算的演示程序。
' g5 o" V% l& {' K' O w 基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -(2^15 - 1)~(2^15 - 1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。 ( s a$ n! c6 A) ]
测试数据:5 ~: u5 I- ~; A+ N& n3 P* P/ ^
(1)0;0;应输出“0”。
5 H) M2 a# o5 n5 p3 P( A% y( z(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。- d- S& R2 D6 l. s! m
(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。: n$ b% @) Y9 e7 M9 F& ?
(4)1,0001,0001;-1,0001,0001;应输出“0”。
: t- s; p! s- ?/ v- {1 D(5)1,0001,0001;-1,0001,0000;应输出“1”。
& O3 Q. _! B$ x$ @ (6)-9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998”。
7 y# G; `& I5 f(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。6 Y2 m: C$ G. \" H+ i
实现提示:* C; B l8 _& f( O0 I+ i
(1)每个结点中可以存放的最大整数为32767,才能保证两数相加不会溢出,但若这样存放,即相当于按32768进制存放,在十进制与32768进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的4位,即不超过9999的非负整数,整个链表表示为万进制。
% X% x5 ~/ a! O; g+ X' L4 M(2)可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结( }, j5 L" R8 _3 R Z/ Z4 q
2 e) _" c2 n, a5 U) F7 o8 r点数目。相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中是简化程序结构的一种方法。不能给长整数位数规定上限。 |
|