Lenguaje c de resta de enteros grandes

# incluir & ltstdio.h & gt

# incluir & ltstdlib.h & gt

# incluir & ltstring.h & gt

char a[1000] , b[1000];

int c[1001];

int x, y, j, k

int blen = 0; /p>

int alen = 0;

char flag = '+'; // Se utiliza para restar el número negativo de la bandera.

Intsubtract (char * a, char * b, int len) {// Para evitar la duplicación de código, extrae el cálculo de * * * y escríbelo como una función.

int I;

for(I = len-1;I>=0;I-) {

if(a[I]& lt ;b [i]) {

c[I]= a[I]+10-b[I];

b[I-1]++;

}En caso contrario{

c[I]= a[I]-b[I];

}

}

devolver 0;

}

int resta(){

for(I = 0;i<100;i++)

{

scanf("%c ", & ampb[I]);

if(b[i]=='\n ')

Romper;

blen++;

}

printf(" = ");

if(alen & gt;blen)

p>

{

x =(alen-blen);

for(I = blen-1;i>=0;i-)

{

alen-;

b[alen]= b[I];

}

for(I = 0 ; i<x;i++)

b[I]= ' 0 ';

alen = blen+x;

blen = alen

} else if(blen>alen) {

x =(blen-alen);

for(I = alen-1;i>=0; I-)

{

blen-;

a[blen]= a[I];

}

for(I = 0;i<x;i++)

a[I]= '0';

blen = alen+x;

alen = blen

}

for(I = alen-1;i>=0;i-) {

a[I]= a [I]--0;

b[I]= b[I]--0;

}

if (strcmp(a, b) >0) {

Restar (a, b, alen);

} En caso contrario {

flag = '-';

Restar (b, a, alen

}

Devuelve 0;

}

int suma(){

for(I = 0;i<100 ;i++)

{ scanf("%c ",&b[I]);

if(b [i]=='\n ')

Pausa;

blen++;

}

printf(" = ");

if(alen & gt;blen)

{

x =(alen-blen);

for(I = blen -1;I>=0;I-)

{

alen-;

b[alen]= b[I];

}

for(I = 0; i<x;i++)

b[I]= '0';

alen = blen +x;

} else if(blen & gt;alen) {

x =(blen-alen);

for(I = alen-1 ;I>=0;I-)

{

blen-;

a[blen]= a[I];

p>

}

for(I = 0;i<x;i++)

a[I]= '0';

blen = alen+ x;

alen = blen

}

for(I = alen-1;I>=0;I-) {

a[I]= a[I]--0;

b[I]= b[I]--0;

if(c[I+ 1]+a[ I]+b[I]& gt;=10)

{

c[I]=(c[I+1]+a[I] +b[I] )/10;

c[I+1]=(c[I+1]+a[I]+b[I])% 10;

}

Otros

{

c[I+1]+=(a[I]+b[I]);

}

}

Devuelve 0;

}

int main()

{

for(I = 0;i<100;i++)

a[I]= 0;

for(I = 0;i<100;i++)

b[ I]= 0;

para(I = 0;i<101;i++)

c[I]= 0;

para(I = 0;i<100 ;i++)

{

scanf("%c ",&a[I]);

if(a[i]=='+')

{

Agregar();

ir a la salida 1;

}

if(a[i ]=='-')

{

Resta();

ir a salida2

}

alen++;

}

Salida 1:

{

para (I = 0;i<=aleni++)

printf("%d ",c[I]);

Devuelve 0;

}

Salida 2:

{

printf("%c ", bandera);

for(I = 0; i< Allen; i++)

printf("%d ", c[I]);

Devuelve 0;

}

}

Resultado de la ejecución del código:

123456789-12345

=+123444444

Terminado con código de retorno 0

Presione cualquier tecla para continuar...

123456+111111

=0234567

Terminado con código de retorno 0

Presione cualquier tecla para continuar...

1000000-1

=+0999999

Terminado con código de retorno 0

Presione cualquier tecla para continuar...

1-1000000

=-0999999

Terminado con el código de retorno 0

Presiona cualquier tecla para continuar...

//¡Qué le hizo a tu código! Espero que sea útil para su estudio.