版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- 学生姓名学生班级学生** 指导教师 -1、设计一个100位以内的长整数加减运算的程序。要求如下:输入输出要求:每四位一组,组间用逗号分隔;加和减分别用不同的程序实现程序应考虑输入数据的符号2、用循环链表实现约瑟夫环问题数与被减数的长短关。Number*GetNumber(){Number*p,*q,*List;p=(Number*)malloc(LEN);stpList->prior=NULL;List->data=0;{{-locLENhetq}}tNULLiorNULList}NumberJiaFa(Number*num_1,Number*num_2)//返回的数据为逆序{Numberp*q,*r,*s,*num=NULL;p=num_1;while(p->ne*t!=NULL){pnet}q=num_2;while(q->ne*t!=NULL){q=q->ne*t;}s=(Number*)malloc(LEN);s->prior=NULL;//i表示number1数字的长度//j表示number2数字的长度-while(i--&&j--){{ppriordataa}mbermallocLENrsrior}prior{while(i--){{pdatappriordata}点-riors}{s}}{while(j--){{a}s}{-s}}um}ne*t置空NumberJianFa(Number*num_1,Number*num_2)//返回的数据也为逆序{Numberp*q,*r,*s,*num=NULL;p=num_1;while(p->ne*t!=NULL){p=p->ne*t;}q=num_2;while(q->ne*t!=NULL){q=q->ne*t;}s=(Number*)malloc(LEN);s->prior=NULL;s->ne*t=NULL;num=s;数的,用减数减去被减数,最后反号{while(i--){s->data=q->data-p->data;if(s->data<0){//i表示number1数字的长度//j表示number2数字的长度//对于被减数长度小于减-q->prior->data--;}bermallocLENrsriorj--;}priorwhile(j--){{q->prior->data--;}s}}{umqnumwhilep>data==q->data){pnet}mNumbermallocLENriorNULL点-mdatamnetpumNumbermallocLENriorNULLmdatamnetqwhile(p->ne*t!=NULL){ppnet;}while(q->ne*t!=NULL){}atanumnetdata{while(i--){ata{p->prior->data--;}rNumbermallocLEN);iorspprior}r=s=s->prior;//去掉最后一个没数据的节点free(s->ne*t);while(s->data==0&&s->prior!=NU去)掉前面多余的0,1{s=s->prior;free(s->ne*t);-}}tdata{while(i--){{q->prior->data--;}mbermallocLENrsrior}r=s=s->prior;//去掉最后一个没数据的节点free(s->ne*t);while(s->data==0&&s->prior!=NU去)掉前面多余的0,1{s=s->prior;free(s->ne*t);}}s->data=0-s->data;能放符号,而直接在最高位前加负号最简单s->ne*t=NULL;}{while(j--){s->data=p->data-q->data;if(s->data<0){s->data+=10;}//反号,因为节点里不-mbermallocLENrsriori--;}rssprior//去掉最后一个没数据的节点while(i--){{datap->prior->data--;}riors}while(s->data==0&&s->prior!=NULL)//去掉前面多余的0,否{s=s->prior;free(s->ne*t);}//s->data=0-s->data;//反号,因为节点里不能放符号,而直接在最高位前加负号最简单s->ne*t=NULL;}returnnum;}4.链表的合并voidPutNumber(Number*num)/表的合并{Number*p;-while(p->ne*t!=NULL){pnet}while(k--){printfdpdata);rior完后不输出','}}遇到的问题及解决方法hhzeofNumber{Numbernet-Numberprior;{dDestoryListNumberdPutNumberNumberNumberGetNumber();数NumberJiaFa(Number*num_1,Number*num_2);//加法函数Number*JianFa(Number*num_1,Number*num_2);//减法函数Numbernumber_1,*number_2,*number;charch//存放运算符号printfEnterthefirstlongnumbern);berGetNumberprintf("put+or-:\n");fflush(stdin);//吸收不相关的字符printfEnterthesecondlongnumbern);erGetNumbernumberJiaFanumbernumber2);numberJianFanumbernumber2);ntfnmbernumberoryListnumberDestoryList(number_1);DestoryListnumber2);}NumberGetNumber(){Numberp,*q,*List;NumbermallocLENiorNULLdata{{-locLENhetq}}tNULLiorNULList长度一样与不同NumberJiaFa(Number*num_1,Number*num_2)//返回的数据为逆序{Numberp*q,*r,*s,*num=NULL;p=num_1;while(p->ne*t!=NULL){pnet}q=num_2;while(q->ne*t!=NULL){q=q->ne*t;}s=(Number*)malloc(LEN);s->prior=NULL;s->ne*t=NULL;num=s;while(i--&&j--){s->data=p->data+q->data;if(s->data>9){s->data-=10;况,后面还有p->prior->data++;//i表示number1数字的长度//j表示number2数字的长度//**处理两数相加大于9的情//在长的数据上调整-a}mbermallocLENrsrior}prior{while(i--){{pdatappriordata}riors}{s}}{while(j--){{点-a}s}{s}}ne*t置空umNumberJianFa(Number*num_1,Number*num_2)//返回的数据也为逆序{Numberp*q,*r,*s,*num=NULL;p=num_1;while(p->ne*t!=NULL){p=p->ne*t;}q=num_2;while(q->ne*t!=NULL){q=q->ne*t;}s=(Number*)malloc(LEN);s->prior=NULL;s->ne*t=NULL;//i表示number1数字的长度//j表示number2数字的长度-数的,用减数减去被减数,最后反号{while(i--){s->data=q->data-p->data;if(s->data<0){s->data+=10;q->prior->data--;}r=(Number*)malloc(LEN);s->ne*t=r;r->prior=s;s=r;p=p->prior;q=q->prior;}r=s=s->prior;free(s->ne*t);s->ne*t=NULL;while(j--){if(q->data<0){q->data+=10;q->prior->data--;}s=(Number*)malloc(LEN);s->data=q->data;q=q->prior;r->ne*t=s;s->prior=r;r=s;}s->data=0-s->data;符号,而直接在最高位前加负号最简单s->ne*t=NULL;}elseif(i==j){//对于被减数长度小于减//去掉最后一个没数据的节点-pnum_1;q=num_2;while(p->data==q->data){pnet}umNumbermallocLENriorNULLmdatamnetpumNumbermallocLENriorNULLmdatamnetq{ppnet;}{}atanumnetdata{while(i--){ata{p->prior->data--;}rNumbermallocLEN);iorspprior-}r=s=s->prior;//去掉最后一个没数据的节点free(s->ne*t);while(s->data==0&&s->prior!=NU去)掉前面多余的0,1{s=s->prior;free(s->ne*t);}}if(num_1->ne*t->data<num_2->ne*t->data){while(i--){s->data=q->data-p->data;if(s->data<0){s->data+=10;}r=(Number*)malloc(LEN);s->ne*t=r;r->prior=s;p=p->prior;q=q->prior;}r=s=s->prior;//去掉最后一个没数据的节点free(s->ne*t);while(s->data==0&&s->prior!=NU去)掉前面多余的0,1{s=s->prior;free(s->ne*t);}}s->data=0-s->data;能放符号,而直接在最高位前加负号最简单s->ne*t=NULL;}//反号,因为节点里不-{while(j--){{p->prior->data--;}mbermallocLENrsriori--;}priorwhile(i--)点{{datap->prior->data--;}riors}while(s->data==0&&s->prior!=NULL)//去掉前面多余的0,否{s=s->prior;free(s->ne*t);}//s->data=0-s->data;//反号,因为节点里不能放符号,而直接在最高位前加负号最简单s->ne*t=NULL;}-um}tNumberNumbernum{Number*p;while(p->ne*t!=NULL){pnet}while(k--){printfdpdata);rior不输出','char}harn}storyListNumberlist{Number*p,*q;whilep{}}#include<stdio.h>#include<stdlib.h>{structLnodenet;Lnode*p,*q,*head;-{printfhowmanynumbersdoyouwant;n{printfnniserorr!\n\n");printfhowmanynumbersdoyouwa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业集团蛇年年会盛典(同心创佳绩金蛇启新章主题)活动策划方案-60正式版
- 内蒙古呼伦贝尔市阿荣旗2024-2025学年七年级上学期1月期末语文试卷(含答案)
- 贵州省部分学校联考2024-2025学年高三上学期12月月考语文试卷(含答案)
- 安徽省示范高中2024-2025学年高一(上)期末综合测试物理试卷(含答案)
- 福建省宁德市(2024年-2025年小学六年级语文)部编版开学考试(下学期)试卷及答案
- 2024年事业单位教师招聘言语理解与表达题库带答案解析
- 贵州轻工职业技术学院《护理学基础Ⅰ(实验)》2023-2024学年第一学期期末试卷
- 2025版酒吧装饰材料批发代理销售合同3篇
- 新疆塔城地区(2024年-2025年小学六年级语文)统编版能力评测((上下)学期)试卷及答案
- 新疆哈密地区(2024年-2025年小学六年级语文)统编版期中考试(上学期)试卷及答案
- 售楼部保安管理培训
- 2024年高压电工证理论考试题库(含答案)
- 2023-2024学年仁爱版七上期末考试英语(试题)
- 2024年医院培训计划
- 2023年湖南出版中南传媒招聘笔试真题
- 呼吸内科临床诊疗指南及操作规范
- 学生管理教育课件
- 世界职业院校技能大赛高职组“关务实务组”赛项参考试题及答案
- 高中历史教师资格考试面试试题及解答参考(2024年)
- 银行贷款房产抵押合同样本
- 期末 试题 -2024-2025学年人教PEP版英语六年级上册 (含答案)
评论
0/150
提交评论