1、3)乘法运算 符号存放在最低位,将其中一个数a的每一位分别乘以另一个数b的每一位,并将结果保存在数组c中,然后重复计算a的下一位跟b的每一位的乘积,把上一次计算保存在c的值加上本次计算后的值,并保存在c自身中,直到a的最高位,最后输出符号和相应的计算结果。4)除法运算 利用乘法和减法,将除数分别乘以1到9,直到其值大于等于被除数的对应的数,然后被除数对应的数减去其乘积,保存在一个数组中,下一次循环把它归到被除数中继续做除法运算,最后得到余数并输出。4.函数功能:1. void init(int a,int b,int *p1,int *p2) 2.功能说明:读入所要计算的数值,数据初始化3.i
2、nt plus(int a,int b,int c,int m,int n) 4. 功能说明:两个正整数相加3. void change(int a,int b,int m,int n) 功能说明:当两异号数相加时,改变其符号以符合加法运算5.int minus(int a,int b,int d,int m,int n) 6.功能说明:两个正整数相减5. void minusfun(int a,int b,int d,int m,int n) 判断两个异号数的相加方式7.int multi(int a,int b,int c,int m,int n) 8.功能说明:两个正整数相乘7. voi
3、d print(long c,int flag) 功能说明:打印带符号flag(1为负)的long c数组8. int write(long a,int flag) 将键盘敲入的数字按4位一组放入long a,且将符号放入flag9. void mul(long a,int first,int last,long b,long c) 乘法,a的第last到first位乘以b,答案放到c10. int compara(long a,int first,int last,long b) 比较数组a,b大小,first last分别为a的最高最低位11. int minusd(long a,int
4、first,int last,long b,long c,int flag) a为被减数,first last为a最高最低位,b为减数,c为差,flag为符号12. void div(long a,long b,long c,int fa) 除法,a除以b的值放入c,fa为a符号13. void menu() 打印菜单函数14. void main() 主函数,调用其余函数,计算相应功能的值并输出。5.源程序:#includemath.hstdio.h#define MAX 40 /可以修改,此时最大运算位数为四十位#define N 10 /此处应为最大位数除以4void init(int
5、a,int b,int *p1,int *p2) /输入 int i,j; char r,s; for(i=0;i0&j0;i-,j-,k+) dk=ai+bj+dk; if(dk9) dk+1+;dk=dk-10; while(i0) dk=dk+ai;9) k+; i-; while(j dk=dk+bj; if(dk dk+1+; k+; j-; d0=a0+b0; c0=d0; if(dk=0) k-; for(i=1;ki+,k-) ci=dk; return(i);void change(int a,int b,int m,int n) /变号运算 int cMAX; if(m=n
6、&b0=45) ci=ai; for(i=1,j=1;ja0=45) a0=0; b0=45;int minus(int a,int b,int d,int m,int n) /减法运算 int cMAX=0,i,j,k; di=0;i-,j-,k+) if(ck0|aibj) ck=ck+ai-bj; if(ck0) ck+=10; ck+1-; else ck=ai-bj; ck=ck+ai; if(ck ck+=10; ck+1-;i-; ck=ai+ck; while(ck=0&i+) di=ck-;void minusfun(int a,int b,int d,int m,int n) /判断是否两异号数相加 int i,j,f=0,g=0; if(b0!=0) printf(- printf(%d,bi); printf(n if(a0!=0),ai); if(m=n) if(aia0=45) g=1; if(ai!=bi) f=1; if(f=0)0n if(g=1) change(a,b,m,n); j=minus(a,b,d,n,m);j;i+) printf(,di);return; else if(a0=45&b0=0) j=minus(b,a,d,n,m); else j=minus(a,b,d,m,n);n&b0=45) retur
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1