C语言程序设计方案-大数运算 .docx

上传人:C****o 文档编号:13052796 上传时间:2022-04-27 格式:DOCX 页数:4 大小:21.11KB
返回 下载 相关 举报
C语言程序设计方案-大数运算 .docx_第1页
第1页 / 共4页
C语言程序设计方案-大数运算 .docx_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《C语言程序设计方案-大数运算 .docx》由会员分享,可在线阅读,更多相关《C语言程序设计方案-大数运算 .docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品名师归纳总结#include #include #include #define MAXN 1010/*将中意 XX,XXXX,XXXX格式的字符串 s 转换为数字串储备在数组shu 中*/int get_shuchar *s, int shuint index = 0 。char* point 。sscanfs, %d, &shuindex+。 / 从 s中猎取第一个数到num 中for 。 / 先找, 假如找到了将该位置的字符转变为 空格后再从这个位置读取数字point = strchrs, , 。/从 s 中找到第一个 , 将其的址存在 point 中ifpoint = NULL b

2、reak。 / 假如没有找到 , 就说明到终点 脱离循环*point = 。/ 找到 ,后 将其转变为 空格sscanfpoint, %d, &shuindex+。 / 从空格处向后猎取数字到 num 中int i, temp 。 /index 记录数组中数的个数将数组反转 高位在后 低位在前fori = 0 。 i len2 . len1: len2 。 /以两个数串种最长的长度为基准作为运算次数int index, delta = 0 。forindex = 0 。 index 1 & s1len1-1 = s2len2-1 /.假如两个数串的长度相同且高位相同 就不断向后缩减长度 len

3、1- 。 len2- 。 / 由于相同的高位会被抵消但是这个循环至少给两个数串留1 位len = len1 len2 . len1: len2 。 /取较长的长度作为运算次数iflen1 .= len2/.当两数串长度不等的时候up = len1 len2. s1: s2 。 /. 长度长的确定值确定大赋值给 up dn = up = s1. s2: s1 。 /. 短的给 dnelse/ 当两数串长度相等的时候up = s1len1-1 s2len2-1. s1: s2 。/比较最高位的值大的数给 up dn = up = s1. s2: s1 。int index, delta = 0 。

4、/ 这里开头从低位向高位运算forindex = 0 。 index len 。 index+resindex = upindex - delta - dnindex。ifresindex 1 & resindex - 1 = 0/消去前导 0 但至少保留 1 位index- 。*len0 = index 。 /讲长度赋值给主函数中的len0return up = s1 。 / 假如 s1 的值大就返回真否就返回假在主函数中用来判定结果的符号int main/分别定义了第一个数其次个数 和运算结果的数组长度 以及正负int shu1MAXN, len1, isneg1 。int shu2MAX

5、N, len2, isneg2 。int resMAXN, len0, isneg0 。/.enter 猎取输入的字符串可编辑资料 - - - 欢迎下载精品名师归纳总结char enterMAXN。whilegetsenter / 猎取一行ifenter0 = 0break 。 / 假如为空字符串就退出循环char* point = strchrenter, . 。 /定义一个字符指针从 enter 中找. 字符作为分界线*point = 0 。/ 在找到的 。字符转变为字符串结尾标志这样把 enter 划分为两个字符串 一个以 enter 打头 一个以 point+1memsetshu1,

6、0, sizeofshu1 。/讲两个数串清零 这一步特别重要memsetshu2, 0, sizeofshu2 。/由于对于长度不等的数串做运算的时候我们都是将短的数串后面当作0 看待的len1 = get_shuenter, shu1。/ 将第一个字符串中的数猎取到num1 中len2 = get_shupoint + 1, shu2 。 /将其次个字符串中的数猎取到num2 中ifshu1len1 - 1 0/假如第一个字符串最高为位负shu1len1 - 1 = -shu1len1 - 1 。/. 就转变为正isneg1 = 1 。/ 并且将负标记设为1elseisneg1 = 0 。/ 否就设为 0 ifshu2len2 - 1 = 0 。 index-/ 将储存结果的res 数串从高到低输出ifindex = len0 - 1/假如是最高位 就依据标记 判定是否输出负号-ifisneg0 & resindex printf-。 / 有一种情形除外就是仅有 1 位且为 0 这时候不输出 -号printf%d, resindex。elseprintf,%04d, resindex。/ 其他数保留前导零4 位输出printfn 。return 0 。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁