资源描述:
《用C实现N进制加法减法及乘法运算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、头文件header.h文件intcheck(char*s,inthintN);voidexchange(char*p,int1);intdsjz(char*p,intl,intN);voiddNjz(intx.char*sjntN);voidjia(char*pl,char*p2,char*p3jnt11,int12,intN);voidjian(char*p1,char*p2,char*p3,int11Jnt12,intN);voidcheng(char*p1,char*p2,char*p3,intlljnt12,intN);调用
2、函数文件jiafa.cpp文件#includeMheader.h"voidjia(char*pl,char*p2,char*p3,int11,int12,intN)〃加法运算{intx=dsjz(pl,11,N)+dsjz(p2,12,N);dNjz(x,p3,N);}jianfa.cpp文件#include"header.h"voidjian(char*p1,char*p2,char*p3,int11,int12,intN)〃减法运算{intx=dsjz(p1,11,N)・dsjz(p2,12,N);dNjz(x,p3,N);}c
3、hengfa.cpp文件#include"header.h'fvoidchcng(char*pl,char*p2,char*p3,int11Jnt12,intN)〃乘法运算{intx=dsjz(p1,11,N)*dsjz(p2,12,N);dNjz(x,p3,N);jianyan.cpp文件#includeMheader.h"intcheck(char*s,intl,intN)〃检验N进制数的合法性{for(inti=0;i(,0'+N-l)
4、
5、s[i]<,0,)return0;return1;nixu
6、.cpp文件#include"header.h"voidexchange(char*p,int1)〃将字符数组逆序{intk=l/2;for(inti=0;ivk;i++){chart=*(p+i);*(p+i)=*(p+l-l-i);*(p+l-l-i)=t;toN.cpp文件#includenheader.h"#includevoiddNjz(intx,char*s,intN)〃十进制转N进制{intmJ;for(inti=0;x>N-l;i++){m=x%N;x=x/N;s[i]='0'+m;}s[i]=,
7、0'+x;l=strlen(s);cxchangc(s,l);}toTen.cpp文件#includenheader.h"#includeintdsjz(char*p,intLintN)//N进制转十进制{intx=0;exchange(p,l);for(inti=();i#include#includc#inc1ude"header,h
8、"voidmain(){charsi[50],s2[50],s3[5()]={'、()'},z;intll,12,N,m,k,q;cout«M要一并输出还是自由计算?一并输出(1)、自由计算(其它键)n«endl;cin»q;if(q==D{docout«,*要计算几进制数?请输入进制数N(2・・9)r’vvendl;cin»N;cout«"请输入要计算的两个数:u«endl;cin»sl;ll=strlen(sl);for(;check(sl,ll,N)==0;)〃条件控制是否重新输入,不合法则重输{cout«n请输入合法的H«N
9、«H进制数:”«endl;cin»sl;ll=strlen(sl);}cin»s2;12=strlen(s2);for(;check($2,12,N)==0;){cout«n请输入合法的H«N«n进制数:u«endl;cin»s2;12=strlen(s2);}//加法计算cout«s1«,+,<10、对后面计算产生影响for(intii=0;ii<50;ii++)s3LiiJ=' ,;〃减法计算cout«s1«-«s2«=,;if(dsjz(s1,11,N)-dsjz(s2J2,N)<0)〃检验时si、s2就逆序了(无论谁大){