永发信息网

任意长的整数加法 用c语言编写的程序

答案:2  悬赏:40  手机版
解决时间 2021-02-14 05:29
  • 提问者网友:半生酒醒
  • 2021-02-13 13:17
问题描述:设计一个程序实现两个任意长的整数的求和运算。
基本要求:利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。
最佳答案
  • 五星知识达人网友:玩世
  • 2021-02-13 14:49
利用双向链表是有思路了,但利用双向循环链表就不知道了
全部回答
  • 1楼网友:逃夭
  • 2021-02-13 15:09
vs2008测试通过,请采纳 #include #include #define n 20 void addmain(char s1[n],char s2[n],int sresult[n]); void main() { int sresult[n+1]; int x; char s1[n],s2[n]; printf("请选择运算类型,加输入1,减输入2:"); scanf("%d",&x); switch(x) { case 1: printf("你选择了加法,请输入两个整数:"); scanf("%s%s",s1,s2); printf("\n%s + %s",s1,s2); addmain(s1,s2,sresult); break; case 2: printf("你选择了减法"); break; default: printf("error"); } } void addmain(char s1[n],char s2[n],int sresult[n+1]) { int sa[n],sb[n]; int i,x; int *p3; char *p1,*p2; p1=s1; p2=s2; p3=sresult; i=0; *(p3+1)=0; while(*(p1+i)!='\0' && *(p2+i)!='\0' && i<=(n+1)) { x=*(p3+i+1)+(*(p1+i)-48)+(*(p2+i)-48); if (x>9) { *(p3+i+1)=x-10; *(p3+i+1+1)=1; } else { *(p3+i+1)=x; *(p3+i+1+1)=0; } i++; } if (*(p1+i)=='\0') { while(*(p2+i)!='\0' && i<=(n+1)) { x=*(p3+i+1)+(*(p2+i)-48); if (x>9) { *(p3+i+1)=x-10; *(p3+i+1+1)=1; } else { *(p3+i+1)=x; *(p3+i+1+1)=0; } i++; } } else { while(*(p1+i)!='\0' && i<=(n+1)) { x=*(p3+i+1)+(*(p1+i)-48); if (x>9) { *(p3+i+1)=x-10; *(p3+i+1+1)=1; } else { *(p3+i+1)=x; *(p3+i+1+1)=0; } i++; } } *p3=i; i=0; printf("结果为:"); while(i<*p3) { printf("%d",*(p3+*p3-i)); i++; } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯