




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- 学生姓名学生班级学生** 指导教师 -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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术要素在统一大市场流通
- 货币互换协议合同
- 保管合同模板
- 电力配网自动化方案
- 初级会计职称《初级会计经济法基础》1-5
- 无人机应用技术4.1.pix4D作业准备实操
- 数据分析基础(第2版)课件 第2章 数据的收集
- 新疆沙湾县一中2025年化学高一下期末综合测试试题含解析
- AI大模型智慧应急总体设计规划方案
- 2025至2030年中国热转印运动水壶行业投资前景及策略咨询报告
- 声誉风险培训
- 职业技能培训:保健按摩师
- 第二十章手术减肥及体形塑造美容手术美容外科学概论讲解
- 2024年消防文员理论考试题库(浓缩400题)
- 山东省烟台市招远市(五四学制)2024-2025学年八年级上学期期末考试物理试卷(含答案)
- 2024年05月陕西秦农农村商业银行股份有限公司2024年招考金融科技劳务派遣人员笔试历年参考题库附带答案详解
- 物业管理委托合同变更协议
- 电力安全知识相关内容培训
- 2025年医疗质量安全管理与持续改进考核标准、考核办法、改进措施
- 净水器安装协议书
- 网络舆情课件教学课件
评论
0/150
提交评论