算法与数据结构1_第1页
算法与数据结构1_第2页
算法与数据结构1_第3页
算法与数据结构1_第4页
算法与数据结构1_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、算法与数据结构 实验报告 班级:15班 学号:20151503 姓名:王静实验一 线性表的应用一、实验目的掌握线性表的基本结构和操作方法,培养学生灵活使用线性表结构解决实际问题的能力。掌握队列的基本结构和操作方法,培养学生灵活使用线性表结构解决实际问题的能力。二、实验内容设计一个100位以内的长整数加减运算的程序三、实验代码#include#includetypedef struct slistint data100;char sim25;int lengthd;a;void creatlist(a * &l)l = (a *)malloc(sizeof(a);l-data100 = 0 ;c

2、har c = 1;l-lengthd = 0;while (c!=n)for (int i = 0; i lengthd+;scanf_s(%1d,&l-datal-lengthd - 1);scanf_s(%c, &c);/printf(输入成功);int add(a *&l1,a *&l2) /加法运算int f; /f为两者和int k=0; /k为进位int d104 = 0; /最后两位存长度d102 = l1-lengthd;d103 = l2-lengthd;/if (d102 = d103) /l1长度大于等于l2for (; d103 0; d103-, d102-)f =

3、 l2-datad103 - 1 + l1-datad102 - 1 + k;dd102 - 1 = f % 10;if (f / 10)k = 1;elsek = 0;for (; d102 0; d102-) f= l1-datad102 - 1+k; dd102 - 1 = f % 10; if (f / 10) k = 1; else k = 0;if (k)printf(1);/else /l2长度大于l1for (; d102 0; d102-, d103-)f = l2-datad103 - 1 + l1-datad102 - 1 + k;dd103 - 1 = f % 10;i

4、f (f / 10)k = 1;elsek = 0;for (; d103 0; d103-)f = l1-datad103 - 1;dd103 - 1 = f % 10;if (f / 10)k = 1;elsek = 0;if (k)printf(1);f = 0;while (df != 0)printf(%d, df);if (f+k + 1) % 4 = 0&df+1!=0)printf(,);f+;return 0;int compare(a *l5, a *l6) /比较俩数大小,返回1为前者大int i = 0;int b = l5-lengthd;int c = l6-len

5、gthd;if (b c)return 1;else if (b c)return 0;else if (b = c)while (i datail6-datai)return 1;else if (l5-dataidatai)return 0;else if (l5-datai = l6-datai)i+;if (i = b)return -1;int sub1(a *l7, a *l8) /前减后int q = 0; /判断首位0int f; /f为两者差int k = 0; /k为借位 int d104 = 0 ; /最后两位存长度d102 = l7-lengthd;d103 = l8-

6、lengthd;for (; d103 0; d103-, d102-)f = l7-datad102 - 1 - l8-datad103 - 1 - k;/两者相减,再减去借位if (f 0)k = 1;elsek = 0;for (f = 0; f lengthd; f+) /输出if (df != 0)q = 1;if (q)printf(%d, df);if (f + 1) % 4 = 0 & f != l7-lengthd - 1)printf(,);return 0;int sub(a *&l3, a *&l4) /减法运算int c; /判断大小c=compare(l3,l4);

7、/if (c = 1) /l3大于l4sub1(l3, l4);/else if (c = -1) /两者相等printf(0);/else if (c = 0) /l3小于l4printf(-);sub1(l4, l3);return 0;int main()int i;while (1)printf(请选择要进行的运算:n 1.加法 2.减法n);scanf_s(%d, &i);a * b;a * c;switch (i)case(1) : creatlist(b); creatlist(c); add(b, c); break;case(2) : creatlist(b); creatlist(c); sub(b,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论