用C语言实现大数据的加减运算(基本类型无法储存的大数据,使用字符串解决)。

2025-03-18 17:52:24
推荐回答(1个)
回答1:

#include "stdio.h"
#include 
int main(int argv,char *argc[]){
char a[]="133333333687685168756216878416468787846877948";
char b[]="78463163878668468146134846546864646548874651",*pa,*pb;
int i,j,k,la,lb;
if((la=strlen(a))>=(lb=strlen(b)))
pa=a,pb=b;
else{
pa=b,pb=a;
i=la,la=lb,lb=i;
}
printf("%s + %s\n= ",a,b);
for(i=la-1,j=lb-1;j>=0;pa[i--]+=pb[j--]-'0');
for(i=la-1;i>0;i--)
if(pa[i]>'9')
pa[i]-=10,pa[i-1]++;
if(pa[0]>'9'){
printf("1");
pa[0]-=10;
}
else
for(;pa[i]=='0';i++);
printf("%s\n",pa+i);
printf("\n%s - %s\n= ",a,b);
for(i=la-1,j=lb-1;j>=0;pa[i--]-=pb[j--]-'0');
for(i=la-1;i>0;i--)
if(pa[i]<'0')
pa[i]+=10,pa[i-1]--;
if(pa[0]<'0'){
printf("-");
pa[0]+=1;
}
else
for(;pa[i]=='0';i++);
printf("%s\n",pa+i);
return 0;
}

运行结果: