c语言大作业高精度计算.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档