数据结构课程设计大数相乘和贪吃蛇 .docVIP

数据结构课程设计大数相乘和贪吃蛇 .doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计大数相乘和贪吃蛇 .doc

数据结构课程设计 学院: 计算机科学与工程学院 班级: 学生姓名: 设计题目:大数相乘贪吃蛇游戏 完成日期:2018年1月03曰 课程论文题目 大数和乘 程序设计思路 顺序存储两个大数分别于A[]、和B[]中。 把这个数组屮的每一位数字单独进行乘法运算。 找到最高位在数组中的项c[i ],然后依次输出各位上的数值。 通过主函数来调用其它各个函数。 数据结构设计 输入阶段采用一维数组A[],B[]。 二利用函数计算阶段调用一维数组c []。 功能函数设计: 找出每一项的所有项 首先找规律,如下图所示, 进行乘法 a[0]a[l]a[2] b[0] b [1] b[2] b [2]a[0]b[2]a[l]b[2]a[2] b[l]a[0]b[l]a[l]b[l]a[2 ] b[O]a[O]b[O]a[l ] b[0]a[2] 下标值和0 1 23 4 i=4 i=3 i=2 i=l i=0(循环时的i的数值) 即有 下标之和=^1+?2七由此限定条件可设计循环得出每一列的所有项。 故首先解决了找出每一列所有项的问题。 二、 计算从地位到高位的每一位的值。 显然考虑到进位的问题,故必须从低位到高位依次计算,对于每一列, 第一项除以10取余数,保留在原位存入从[],所得商进位存入mm。然后 对于第二列,第一项加进位mm,然后取余数存入su,在加第二项,取 余数存入从[],求商存入进位mm,直到该列所冇项参与运算到该列结束 时,求的最终的从[]和mm。依次进行后面的运算。 三、 找出反向存入结果从[]中的首项。 因为最高位一定不为零,故可以设计程序从c[]开始判断,当从[i】不等于 零时,即为最高项。 四、 设计主函数,依次调用如上函数。然后通过for循环 5、主函数 ^include #dlib. h#in ng. h#defi ne N 100 void swap(ch ar 木 str, in t p, int q ) ; void men u() ; void m ul til () ;ch ar* LargeN um mul ti (c har*A, cha r*B); void swap (char氺str, int p, int q) {c har temp;w q) temp;{temp = str[p];str [p] = str[q];str[q] temp; P++; q—; } } char* LargeNu m_multi (ch ar* A, char* B)//大数相乘 {if((A[O]) {int m = strlen (A) ; int n = st rlen (B) ; in t i, j; cha r 氺result;int mul tiF lag; int ad dFlag; resu 11 = (char 氺)mal loc (s izcof (char )*(m + n + 1));for ( m + n; i + +)*(result + i) = ’ 0 ’ ;result[m + n] =,\ 0’ ; swap (A, 0, m - 1) ; swap(B, 0, n — 1) ;f or (i = 0;l; i++) {mu ItiFlag = 0;addFlag = 0;for (j m - -1; j++) {int w= (A[j] -’0’)*(B[i] - ’0’ ) + mu ItiFlag;mu ItiFlag =w / 10;w = w % 10; int k =(resu It[i + j]- ’O’)+ w + addElag ;addElag = k / 10;re sult[i + j] 二 k % 10 + ’ 0’ ; }re suit[i + m ] }re suit[i + m ] += } swap (result, 0 , m }el seif (A[0][0]== {LargeNum multi((A + 1), (B + 1)); TOC \o 1-5 \h \z }else if (A[0] =9’)) {print f ;Lar geNum_mult i ((A + 1), B); } els e if (B[0] (A[0] = { printf LargeN um multi (A, (B + 1)); r else if (B[0] ==[0] = ’1”9’)) { printf(0); menu () ; } else if (A[0]二二 ’0 {printf C’O ) ;menu(); } else if (B[0]== ’ ]== { printf (,z0,z) ; menu (); } else if (B[0

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档