C语言:长整数运算演示程序
长整数运算演示程序
C中的long int所能表示的数据范围有限,现要求编程完成超过long int所能表示的数据范围以上的十进制的长整数的加法和乘法运算(正考虑正数!)。输入的两个整数和计算结果,以下面的算式格式存放到文本文件中。
123456789012345678901
123456789012345678901
+
1234567890123456789
x
123456
124691346902469135790
15241578751713678875142508889
加法
乘法
提示:两个参与运算的长整数可用char a[256], b[256]表示,整个程序中要求完成以下几个函数的编写:
1) int readlongint(char * x);
此函数用于读入一个正的长整数到x中,函数返回长整数的实际长度;要求输入时检查所读入的字符串是否是合法的长整数,如不是提示用户直到输入合法的长整数为止。
2) int addition(char *x, char *y, char *z);
此函数用于实现用字符串x、y表示的长整数的加法运算,其计算结果保存在另一个字符串z中,函数返回字符串的长度。
3) int multiplacation(char * x, char *y, char *z);
此函数用于实现用字符串表示的两个长整数的乘法运算,可考虑先将乘数的从个位到最高位的每一位与被乘数相乘(这一步可利用addition函数实现),再进行向左偏移后相加完成。