
正文
大数相减 C语言
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
#include <stdio.h>
#include <string.h>
using namespace std;
char a[],b[];
void Sub()
{
int flag = ;
if(a == NULL || b == NULL)
return;
int len1 = strlen(a);
int len2 = strlen(b);
if(len1<len2)
{
int t = len1;
len1 = len2;
len2 = t;
char c[];
strcpy(c,a);
strcpy(a,b);
strcpy(b,c);
flag = ;
}
else if((len1 == len2)&&(a[] < b[]))
{
int t = len1;
len1 = len2;
len2 = t;
char c[];
strcpy(c,a);
strcpy(a,b);
strcpy(b,c);
flag = ;
} int i, j;
int num1[];
int num2[];
for (i = ; i < len1; i++)
{
num1[i] = num2[i] = ;
}
for (i = len1 - ; i >= ; i--)
{
num1[len1 - - i] = a[i] - '';
}
for (i = len2 - ; i >= ; i--)
{
num2[len2--i] = b[i] - '';
}
for (i = ; i < len1; i++)
{
num1[i] = num1[i] - num2[i];
if(num1[i] < )
{
num1[i] = num1[i] + ;
num1[i+] = num1[i+] - ;
}
}
for (i = len1-; i>= && num1[i] == ; i--);
if(flag == )
printf("-");
if(i >= )
for (; i >= ; i--)
{
printf("%d",num1[i]);
}
else
printf("");
} int main(){
scanf("%s%s",a,b);
Sub();
return ;
}








