长整数四则运算

2026/4/28 16:22:39

Status ListLength_DuL(DuLinkList L)

{//线性表L已存在,返回L中数据元素个数 int i=0; DuLinkList p=NULL; for(p=L;p->next!=L;p=p->next) i++; return (i); }//ListLength_DuL

Status ClearList_DuL(DuLinkList &L) {//若线性表L已存在,将L置为空表 ElemType e; if(!ListEmpty_DuL(L)) for(int i=1;i<=ListLength_DuL(L);i++) ListDelete_DuL(L,i,e); return OK;

}//ClearList_DuL

Status DestroyList_DuL(DuLinkList &L) {//销毁线性表L ElemType e; if(!ListEmpty_DuL(L)) for(int i=1;i<=ListLength_DuL(L);i++) ListDelete_DuL(L,i,e); free(L); return OK; }//DestroyList_DuL

void GetElem_DuL(DuLinkList L,int i,ElemType &e) {//用e返回L中第i个数据元素的值 if(i<0||i>ListLength_DuL(L)) printf(\ else e=GetElemP_DuL(L,i)->data;

}//GetElem_DuL

in this position\\n\

int Counter_DuL(DuLinkList L,ElemType e) {//返回双向循环链表L中e出现的次数 int i; DuLinkList p=NULL; for(i=0,p=L;p->next!=L;p=p->next) if(p->data==e)i++; return i+1; }//Counter_DuL

int Position_DuL(DuLinkList L,int n,ElemType e)

{//返回第n个e的在链表中位置 n的合法值为0Counter_DuL(L,e))return OVERFLOW; else { for(i=0,j=0,p=L->next;p!=L;p=p->next) { j++; if(p->data==';')i++; if(i==n)break; } return (j); }//else

}//Position_DuL

/*decride.cpp*/ #include void decride_d() { printf(\ printf(\注意!! 请严格按照国家对于长整数的表示习惯: \\n\ printf(\即每四位一组;组间用\\',\\'隔开\\';\\'每个数以\\\结束 \\n\ printf(\否则可能导致系统运行出错 !!! \\n\ printf(\ printf(\输入N:退出,按任意键继续,回车进行计算!\\n\ printf(\}

/*ExChange.cpp*/

#include\ #include

void exchange(DuLinkList &L,int &j) { int i=0,sum=0; DuLinkList t; ElemType e; for(i=j,sum=0;i>0;i--) { t=GetElemP_DuL(L,ListLength_DuL(L)); sum+=((int)t->data-48)*(int)pow(10.0,(double)(j-i)); ListDelete_DuL(L,ListLength_DuL(L),e); } ListInsert_DuL(L,ListLength_DuL(L),sum); j=0;

}//exchange

/*Operration.cpp*/ #include\

/**************************************************************************************************/

/****************************操作函数operate(DuLinkList )******************************************/

/**************************************************************************************************/ void operate(DuLinkList p) { DuLinkList q; int k=0,i=0,n=0;

k=Counter_DuL(p,';'); int *j=(int *)malloc(k*sizeof(int)); char *f=(char *)malloc(k*sizeof(char)); int *num=(int *)malloc(k*sizeof(int)); for(i=0;inext->data=='-')f[0]='-'; //判断正负数

else f[0]='+'; for(i=1;inext->data=='-') f[i]='-'; else f[i]='+'; } for(q=p,i=0;inext; for(;q!=GetElemP_DuL(p,j[i]);q=q->next) if(q->data==',')n++; num[i]=n+1; } output(Pack_Up(calculate(p,j,f,num,k))); free(j);free(f);free(num); DestroyList_DuL(p); }//operate

/*------------------------------------------------------------------------------------------------------*/ DuLinkList calculate(DuLinkList p,int*j,char *f,int *num,int k) //计算 { DuLinkList r; int sum=0,i=0,t=0,m=0,ma=0,JW=0; InitList_DuL(r);

for(JW=0,m=0,ma=max(num,k);m<=ma;m++) { for(i=0,sum=0;idata==',')j[i]-=1; sum+=t*GetElemP_DuL(p,j[i]-1)->data; num[i]--; } }//for for(i=i-1;i>=0;i--) j[i]-=1; if((sum+JW)<10000&&(sum+JW)>-10000){ListInsert_DuL(r,0,sum+JW);JW=0;} else {ListInsert_DuL(r,0,(sum+JW)000);JW=(sum+JW)/10000;} }//for


长整数四则运算.doc 将本文的Word文档下载到电脑
搜索更多关于: 长整数四则运算 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219