超长整型数据的存储与运算c代码

超长整型数据的存储与运算c代码

ID:28591906

大小:64.04 KB

页数:5页

时间:2018-12-11

超长整型数据的存储与运算c代码_第1页
超长整型数据的存储与运算c代码_第2页
超长整型数据的存储与运算c代码_第3页
超长整型数据的存储与运算c代码_第4页
超长整型数据的存储与运算c代码_第5页
资源描述:

《超长整型数据的存储与运算c代码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、#include#include#include#include#defineMAX101voidsub(inta[],intb[],intp);//函数功能:利用字符串实现超长整数减法运算intla,lb,ra=1,rb=1;/*把la,lb设为全局变量,la纪录第一个超长整型数组的位数,lb纪录第二个超长整型数组的位数*/charc1[MAX],c2[MAX];/*纪录需要计算的两个超长整型数据*/voidinput(inta1[],inta

2、2[])/*函数input为输入函数,用来纪录两个待计算的超长整型数据,以数组首地址为参数.以实现返回两个超长整型数据*/{inti,a=1,b=1;printf("请输入第一个数:");scanf("%s",c1);printf("请输入第二个数:");/*输入两个超长整型数据*/scanf("%s",c2);la=strlen(c1);/*la纪录c1的位数*/lb=strlen(c2);/*lb纪录c2的位数*/if(c1[0]=='-'){la--;ra=-1;a=0;}/*判断数组的符号*/if(c2

3、[0]=='-'){lb--;rb=-1;b=0;}for(i=0;i0

4、

5、p){if(la>lb)d=la;elsed=lb;/*用d纪录结果的最大位数*/for(i=0;

6、i

7、

8、ra<0)printf("-");for(i=d-1;i>=0;i--)printf("%d",c[i]);/*输出结果*/}elsesub(a,b,1);}voidsub(inta[],intb[],intp)/*超长整数减法运算*/{inti,h=0,c

9、[MAX+1]={0},d;if(ra*rb>0

10、

11、p){if(la>lb)d=la;else/*用d纪录结果的最大位数*/{d=lb;for(i=d;a[i]<=b[i]&&i>=0;i--)if(a[i]

12、+1]--;b[i]+=10;}c[i]=b[i]-a[i];}while(!c[d-1]&&d>1)d--;/*判断最后结果的位数*/if(p&&(ra>0&&h

13、

14、ra<0&&!h)

15、

16、ra>0&&(rb>0&&h

17、

18、h&&!p))printf("-");if(ra<0&&rb<0&&!h)printf("-");/*如果h为真是输出负号*/for(i=d-1;i>=0;i--)printf("%d",c[i]);}elseadd(a,b,1);}voidmult(inta[],intb[])/*超长整数乘法运算*

19、/{inti,j,c[2*MAX]={0},d;d=la+lb-1;/*用d纪录结果的最大位数*/for(i=0;i=0;i--)printf("%d",c[i]);/*输出结果*

20、/}//比较两个用字符串存储的超长正整数的大小,若a>b,返回1;a==b,返回0;a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。