- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言大作业高精度计算
学 院 班 级 学 号 姓 名
摘要
编写一个程序实现A+B和A*B,但是A和B都超出了C语言数据范围。
因为C没有直接表示减数与被减数的数据类型,所以选择用字符串数组来存取加数A和B,实现加法和乘法。
本程序考虑了正负整数的情形,没有考虑小数,即本程序中的两个加数没有小数点,但允许有正负号。
目录
1 摘要 3
1.1 设计题目 3
1.2 设计内容 3
1.3 开发工具 3
1.4 应用平台 3
2 详细设计 3
2.1 程序结构 3
2.2 主要功能 3
2.3 函数实现 3
2.4 开发日志 4
3 程序调试及运行 4
3.1 程序运行结果 4
3.2 程序使用说明 4
3.3 程序开发总结 4
4 附件(源程序) 4
/*在后面的文档编写中,请你不要修改各个标题的内容,从而确保报告内容和风格一致。完成全部内容后,你只需要在上面的目录上右键“更新域”,选择“只更新页码”就可以更新正确的目录页码。注意:目录的左边距为6.5厘米。*/
1 摘要
1.1 设计题目
高精度加法和乘法
1.2 设计内容
通过设计一个算法解决高精度加法和乘法
1.3 开发工具
Codeblocks.12.0
1.4 应用平台
Windows 2000/XP 32位
2 详细设计
2.1 程序结构
2.1.1程序所用到函数及功能简介
1. Int change(char str[],int s1[],int s2[])
将字符串计算式 char str[]转换为存入两整型数组 int s1[],int s2[]中所要计算的高位数,并判断
其中的计算符号,若为乘法返回0,为加返回1;
2.Void upset(int a[])
存入数组中数的进位函数,按照程序构想,每个数组元素为实际数的一位,即其应为个位数,
执行计算后,数组元素会出现大于10的数,为避免混乱,通过此函数将其转化为原先的规格,
相当于加减乘除中进位步骤;
3.void sum(int s1[],int res[])
程序中的加法函数,通过特定的算法,将存入两数组int s1[],int s2[]中的数相加,并将结果存
到数组 int res[]中;
void mul(int s1[],int s2[],int res[])
程序中的加法函数,通过特定的算法,将存入两数组 int s1[],int s2[]中的数相乘,并将结果存到数
将数组 int res[]中
5.void print(int a[])
将存入数组int a[]中的高位数输出显示为正常形式
2.2 主要功能
用户输入字符串计算式后,提取其中的高位数,并判断运算符号,执行相应的计算,最后输出
结果。此程序可执行最高100有效数据的高精度加成法,通过更改程序代码中的预编译数值N
可以改变位数,默认N=100.
2.3 函数实现
1.change 函数
此函数的功能为字符串计算式 char str[换为存入两整型数组 int s1[] ,int s2[]中所要计算位数,
并判断其中的计算字符,若为成返回0,加返回1,为实现第一步,首先用两个循环语句将,
字符串中的字符数字存入整形数组中,利用字符ASCLL于对应数字之间转换关系转换数字
并识别加成法。
upset函数
函数实现进位功能的算法过程为(设数组s1[]所存最高一位元素为s1[n]即n=s[0];
1.用循环从s1[1]到全部执行命令{a[i+1]=a[i+1]+a[i]/10;a[i]=a[i]%10;}不难看出此命令的功能为
将数据个位数的数字保留,将十位以上的数字加入下一组元素;
2.用循环从s[n]开始执行上一命令,条件为s1[i]/10!=0,及到出现个位数为止;
3.更改数组所存位数值s1[0];
3.sum 函数
此函数的功能为实现加法运算,其算法过程为:
1.设res[]为计算结果,a=s1[0],b=s2[],判断a,b及两数相同位依次相加;从ai=b,执行res[i]=s1[i],
将剩余位赋值。
mul 函数
此函数实现乘法运算:
1.用双重循环将数组s1[i]s2[j]所有元素两两相累乘存入数组res[]中,由于相乘新位数为i+j-1,其
循环执行命令res[j+i-1]=res[i+j-1]+s1[i]*s2[j],同时更改新数组位数res[0]=j
文档评论(0)