求大牛纠错c语言程序(有关高精度加减法)

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:36:30
Description
Calculate A-B

Input
Two integer a and b(-10^100 < a,b < 10^100)

Output
Output a-b

Sample Input

1 2

Sample Output

-1

我的程序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

main()
{
char a[150],b[150],c[150]={'\0'};
int i,j,k,m,n;

scanf("%s %s",&a,&b);
i=strlen(a);
j=strlen(b);
m=1;n=-1;/*n用来判断是正是负*/

if ((a[0]=='-'&&b[0]=='-')||(a[0]!='-'&&b[0]!='-'))/*做减法*/
{
if (a[0]=='-'&&b[0]=='-')
{
a[0]='0';
b[0]='0';
n=n*(-1);
}
if (j>i) m=0;
if (i==j)
for(k=0;k&l

/*********************
程序功能:计算任意位两整数相减
这里我为了程序的可管理性(也就是可维护性)
用了把程序分成了好几块,
当然对我来说这并不算多。这样的程序
更符合软件工程的要求或说对做比较大的程序较好
虽然这么多还是不够的,但是怕多了你会觉得太过复杂
请耐心读完,或直接上机器看结果。
当然对于有小数的也可以写,但是那样代码多得多。
******************/
#define LEN 250
#include <stdio.h>
#include <string.h>
/*A、B异号*/
int subA(char cha[], char chb[], char chc[])
{
int j = 0;
int tem = 0;
int flag = 0;
int a;
int b;
int fa = 0;
int fb = 0;
int lena = strlen(cha) - 1;
int lenb = strlen(chb) - 1;
char ch;
printf("not the same\n");
if ('-' == cha[0])
{
ch = '-';
fb = -1;
}
else
{
fa = -1;
ch = '+';
}
for (; lena > fa && lenb > fb; lena--, lenb--)
{
tem = (cha[lena] - '0') + (chb[lenb] - '0') + flag;
if (