天天看点

C语言综合实验2—长整数运算

1、实验题目:长整型数运算,c中的long int所能表示的数据范围有限,现要求编程完成超过long int所能表示的数据范围以上的十进制正的长整数的加法和乘法运算。

2、实验提示:两个参与运算的长整数可用char a[256], b[256]表示,整个程序中要求完成以下几个函数的编写:

1) int readlongint(char * x); 此函数用于读入一个正的长整数到x中,函数返回长整数的实际长度;要求输入时检查所读入的字符串是否是合法的长整数,如不是提示用户直到输入合法的长整数为止;

2) char *addition(char *x,char *y); 此函数用于实现用字符串表示的长整数的加法运算,其计算结果保存在一个动态申请的字符数组空间(其长度为参与加法运算的两个长整数中较长的一个的长度加1)中,函数返回该数组的指针。

3) char *multiplacation(char * x,char *y);此函数用于实现用字符串表示的两个长整数的乘法运算,可考虑先将乘数的从个位到最高位的每一位与被乘数相乘(这一步可利用addition函数实现),再进行向左偏移后相加完成;

注意:此程序设计最关键的问题是对字符数组的下标定位和动态申请恰当的内存空间以保存计算结果,注意在乘法运算中回收不再使用的内存空间。

3、实现程序分为三个文件,function.h、function.c、main.c。具体实现如下所示:

function.h头文件声明操作函数

C语言综合实验2—长整数运算
C语言综合实验2—长整数运算

function.c是操作函数的实现,源代码如下所示:

C语言综合实验2—长整数运算
C语言综合实验2—长整数运算

main.c是主函数部分,给出一个菜单进行选择操作,代码如下所示:

C语言综合实验2—长整数运算
C语言综合实验2—长整数运算

4、测试结果如下所示:

C语言综合实验2—长整数运算

继续阅读