爱问知识人 爱问教育 医院库

用数据结构的线性表实现两个长整数相加(要语句解释)谢谢

首页

用数据结构的线性表实现两个长整数相加(要语句解释)谢谢

用数据结构的线性表实现两个长整数相加(要语句解释)谢谢!!……

提交回答
好评回答
  • 2008-11-04 19:57:00
      #include<stdio。h> #include<malloc。
      h> #define HUN 10000typedef struct node { int data; struct node *next; }NODE;NODE *insert(NODE *u,int num) /*声明返回指针函数*/{ NODE *v; /*声明结构指针*/ v=(NODE*)malloc(sizeof(NODE)); v->data=num; u->next=v; return(v); } NODE *addint(NODE *p,NODE *q) { NODE *pp,*qq,*r,*s,*t; int total,number,carry; pp=p->next; qq=q->next; s=(NODE*)malloc(sizeof(NODE)); s->data=-1; t=s; carry=0; while(pp->data!=-1&&qq->data!=-1) { total=pp->data+qq->data+carry; number=total%HUN; carry=total/HUN; t=insert(t,number); pp=pp->next; qq=qq->next; } r=(pp->data!=-1)?pp:qq; while(r->data!=-1) { total=r->data+carry; number=total%HUN; carry=total/HUN; t=insert(t,number); r=r->next; } if(carry) t=insert(t,1); t->next=s; return(s); } NODE *inputint(void) { NODE *s,*ps,*qs; struct number { int num; struct number *np; }*p,*q; int i,j,k; long sum; char c; p=NULL; while((c=getchar())!='\n') if(c>='0'&& c<='9') { q=(struct number *)malloc(sizeof(struct number)); q->num=c-'0'; q->np=p; p=q; } s=(NODE*)malloc(sizeof(NODE)); s->data=-1; ps=s; while(p!=NULL) { sum=0;i=0;k=1; while(i<4&&p!=NULL) { sum=sum+k*(p->num); i++;p=p->np;k=k*10; } qs=(NODE*)malloc(sizeof(NODE)); qs->data=sum; ps->next=qs; ps=qs; } ps->next=s; return(s); } printint(NODE *s) { if(s->next->data!=-1) { printint(s->next); if(s->next->next->data==-1) printf("%d",s->next->data); else { int i,k=HUN; for(i=1;i<=4;i++,k/=10) putchar('0'+s->next->data%(k)/(k/10)); } } } main() { NODE *s1,*s2,*s; NODE *inputint(),*addint(),*insert_after(); s1=inputint(); s2=inputint(); printf("S1="); printint(s1); printf("\n"); printf("S2="); printint(s2); printf("\n"); s=addint(s1,s2); printf("S1+S2=");printint(s);printf("\n"); }。

    双***

    2008-11-04 19:57:00

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):