在c语言环境下实现长整数加减运算(100位)

来源:百度知道 编辑:UC知道 时间:2024/06/15 02:38:38
输入两个长整数(100位),实现加减运算,而且具有可扩充性
谁能回答,请帮帮忙 先谢谢了啊!
既要有加法有要有减法

//---------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>

#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; i<MAX; i++) {
x->a[i]=x->b[i]=x->s[i]=0;
}
x->s[MAX]=0;
for (i=0; i<len; ++i) {
x->a[MAX+i-len]=a[i]-48;
}
len=strlen(b);
for (i=0; i<len; ++i) {
x->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