版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- 学生姓名学生班级学生** 指导教师 -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年多功能智能社区平台建设项目可行性研究报告
- 2025年农业数据系统建设项目可行性研究报告
- 2025年手机应用开发项目可行性研究报告
- 2025年智能制造与自动化生产项目可行性研究报告
- 2026年山西艺术职业学院单招职业技能测试题库及完整答案详解1套
- 2026年南开大学滨海学院单招职业倾向性考试题库附答案详解
- 2026年南京特殊教育师范学院单招职业倾向性测试题库及答案详解一套
- 2026年德州科技职业学院单招职业技能考试题库参考答案详解
- 2025年度物流行业市场调研:产业规模、政策支持及数字化趋势报告
- 2025年及未来5年市场数据中国拖拉机制造市场竞争态势及投资战略规划研究报告
- 广东省广州市越秀区2024-2025学年八年级上学期期末考试英语试题
- 地震波速反演方法-洞察及研究
- 百年未有之大变局课件
- 2025年时事政治考试100题及答案
- 应急救援电源
- 电力行业电力工程设计师岗位招聘考试试卷及答案
- 2025年北京市建筑施工作业人员安全生产知识教育培训考核试卷E卷及答案
- 2024年云南省第一人民医院招聘考试真题
- 2025急性高甘油三酯血症胰腺炎康复期多学科管理共识解读
评论
0/150
提交评论