在C语言环境下实现长整数的加减法运算

要求:输入两位长整数(100位),实现加减运算.具有可扩充性
2024-12-25 16:22:53
推荐回答(1个)
回答1:

#include
#include

#define MAX 100 /*位数*/
typedef struct {
int a[MAX];
int b[MAX];
int s[MAX+1];
} high;

void init(high *x,char *a,char *b)
{
int i,len;
len=strlen(a);
for (i = 0; ix->a[i]=x->b[i]=x->s[i]=0;
}
x->s[MAX]=0;
for (i=0; ix->a[MAX+i-len]=a[i]-48;
}
len=strlen(b);
for (i=0; ix->b[MAX+i-len]=b[i]-48;
}
}
int plus(high *x)
{
int i;
for (i=MAX-1; x->a[i]||x->b[i]; --i) {
x->s[i+1]+=(x->a[i]+x->b[i]);
x->s[i]+=x->s[i+1]/10;
x->s[i+1]%=10;

}
return (MAX-i);
}
void prt(high *a,int len)
{
int i;
for (i=MAX-len+1; i<=MAX; i++) printf("%d",a->s[i]);

}
int main(void)
{
char a[MAX+1],b[MAX+1];
int len;
high sp;
scanf("%[0123456789]",a);
fflush(stdin);
scanf("%[1234567890]",b);
init(&sp,a,b);
len=plus(&sp);
prt(&sp,len);
return 0;
}