c语言实现大数的加法与比较

您所在的位置:网站首页 c语言中比较两数大小 c语言实现大数的加法与比较

c语言实现大数的加法与比较

2024-07-16 15:05| 来源: 网络整理| 查看: 265

当数的范围超出long long int的范围时,如果要进行比较和加减我们就要用到大数

大数的比较和加法 大数的加法

因为大数超出了long long int的范围,我们可以用两个字符数组来存放大数,然后模拟人工运算(从最后一位开始,相加然后进位),下面给出代码

#include #include int main() { char a[10000],b[10000],q; //用两个字符数组来存放数据 scanf("%s",a); //输入两串数字 scanf("%s",b); int i,j,n,m; m=strlen(a); n=strlen(b); if(m=0;j--,i--) //要进行加法,先要在短的那串数字前面补0,让两串数据等长 { a[i]=a[j]; } for(i=0;i=0;i--) //两个数相加,须让长的数据前多一个0来存放可能的进位 { b[i]=b[i-1]; } b[0]='0'; } else { for(i=m+1,j=n;j>=0;j--,i--) { b[i]=b[j]; } for(i=0;i=0;i--) { a[i]=a[i-1]; } a[0]='0'; n=m; //让n=最长的字符串长度 } q=0; //初始化用来统计进位的变量q for(i=n;i>=0;i--) { m=a[i]+b[i]-'0'-'0'+q; //因为是以字符串形式来存放,减去‘0’后才是要运算的数字 a[i]=m%10+'0'; q=m/10; } if(a[0]!='0') //去除可能的前导0 printf("%c",a[0]); for(i=1;ia,把b复制给a } printf("%s",a); return 0; } int bj(char *x,char *y) //如果a>b返回0,否则返回1 { int a,b,i; a=strlen(x); b=strlen(y); if(a>b) return 0; if(a


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3