最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C语言实现大数加减运算 Vc6.0 完美运行

来源:动视网 责编:小OO 时间:2025-09-29 21:31:25
文档

C语言实现大数加减运算 Vc6.0 完美运行

#include#include#include#includevoidmain(){voidjia(char*,char*,char*,char*,char*);voidjian(char*,char*,char*,char*,char*);voidfujia(char*,char*,char*,char*,char*);voidfujian(char*,char*,char*,char*,char*);voidzuoyi(char*,int);intcomp(char*,char*,cha
推荐度:
导读#include#include#include#includevoidmain(){voidjia(char*,char*,char*,char*,char*);voidjian(char*,char*,char*,char*,char*);voidfujia(char*,char*,char*,char*,char*);voidfujian(char*,char*,char*,char*,char*);voidzuoyi(char*,int);intcomp(char*,char*,cha
#include

#include

#include

#include

void main()

{

    void jia(char*,char*,char*,char*,char*);

    void jian(char*,char*,char*,char*,char*);

    void fujia(char*,char*,char*,char*,char*);

    void fujian(char *,char *,char *,char *,char *);

    void zuoyi(char*,int);

    int comp(char *,char *,char *);

char str1[500]="0",str2[500]="0",str3[500]="0",y[1],*p,*q,*r;

int f,g,n;

printf("请输入第一个大整数:\\n");

gets(str1);

printf("请输入运算符:\\n");

gets(y);

printf("请输入第二个大整数:\\n");

gets(str2);

p=str1+strlen(str1)-1;

q=str2+strlen(str2)-1;

  

  r=str3+strlen(str2);

if(strlen(str1)>strlen(str2))

  r=str3+strlen(str1);

  

  f=strlen(str1);

  g=strlen(str2);

if(*y=='+')

{

    if(*str1!='-'&&*str2!='-')

        jia(p,q,r,str1,str2);

        

    if(*str1=='-'&&*str2!='-')

    {

        zuoyi(str1,f);

        p=str1+strlen(str1)-1;

if(strlen(str1)>strlen(str2))

            fujian(p,q,r,str1,str2);

     else if(strlen(str1)            jian(q,p,r,str2,str1);

        else

        {

            n=comp(str1,str2,p);

            if(n==1)

                fujian(p,q,r,str1,str2);

            else

            {

                 r=str3+strlen(str2);

if(strlen(str1)>strlen(str2))

                 r=str3+strlen(str1);

                jian(q,p,r,str2,str1);

            }

        }

    }

    if(*str1!='-'&&*str2=='-')

    {   zuoyi(str2,g);

         q=str2+strlen(str2)-1;

     if(strlen(str1)>strlen(str2))

        jian(p,q,r,str1,str2);

     else if(strlen(str1)        fujian(q,p,r,str2,str1);

        else     

        {

            n=comp(str1,str2,p);

            if(n==1)

            {

                 r=str3+strlen(str2);

if(strlen(str1)>strlen(str2))

                 r=str3+strlen(str1);

                jian(p,q,r,str1,str2);

            }

            else

                fujian(q,p,r,str2,str1);

        }

    }

    if(*str1=='-'&&*str2=='-')

    {

        zuoyi(str1,f);

        zuoyi(str2,g);

        p=str1+strlen(str1)-1;

        q=str2+strlen(str2)-1;

        fujia(p,q,r,str1,str2);

    }

}

if(*y=='-')

{

        if(*str1!='-'&&*str2!='-')

    { 

     if(strlen(str1)>strlen(str2))

        jian(p,q,r,str1,str2);

     else if(strlen(str1)        fujian(q,p,r,str2,str1);

        else     

        {

            n=comp(str1,str2,p);

            if(n==1)

            {

                r=str3+strlen(str2);

if(strlen(str1)>strlen(str2))

                 r=str3+strlen(str1);

                jian(p,q,r,str1,str2);

            }

            else

                fujian(q,p,r,str2,str1);

        }

    }

    if(*str1=='-'&&*str2!='-')

    {

        zuoyi(str1,f);

        p=str1+strlen(str1)-1;

        fujia(p,q,r,str1,str2);

    }

    if(*str1!='-'&&*str2=='-')

    {

         zuoyi(str2,g);

         q=str2+strlen(str2)-1;

        jia(p,q,r,str1,str2);

    }

    if(*str1=='-'&&*str2=='-')

    {

        zuoyi(str1,f);

        zuoyi(str2,g);

         q=str2+strlen(str2)-1;

        p=str1+strlen(str1)-1;

        r=str3+strlen(str2);

if(strlen(str1)>strlen(str2))

        r=str3+strlen(str1);

if(strlen(str1)>strlen(str2))

        

            fujian(p,q,r,str1,str2);

        

     else if(strlen(str1)            jian(q,p,r,str2,str1);

        else

        {

            n=comp(str1,str2,p);

            if(n==1)

                fujian(p,q,r,str1,str2);

            else

                jian(q,p,r,str2,str1);

        }

    }

}

}

void jia(char *p1,char *q1,char *r1,char *st1,char *st2)

{

    int s,d,j=0;

for(;p1>=st1&&q1>=st2;p1--,q1--,r1--)

{

  d=0;s=*p1+*q1-'0';

if(*(p1+1)+*(q1+1)+j-'0'>'9')

   d=1;

  j=d;

if(*p1+*q1+j-'0'>'9')

  {

     s=*p1+*q1-'9'-1;

  }

     *r1=d+s;

}

if(*(p1+1)+*(q1+1)-'0'>'9')

  *r1+=1;

if(p1>=st1)

{

for(;p1>=st1;r1--,p1--)

  {

if(*r1+*p1>'9')

      *r1=-9,*(r1-1)+=1;

   *r1+=*p1;

  }

}

if(q1>=st2)

  {

for(;q1>=st2;r1--,q1--)

   {

if(*r1+*q1>'9')

    *r1=-9,*(r1-1)+=1;

    *r1+=*q1;

   }

  }

  while(*r1=='0')

   r1++;

  printf("结果为:");

  while(*r1!='\\0')

   printf("%c",*(r1++));

  printf("\\n");

  system("pause");

}

 

void jian(char *p1,char *q1,char *r1,char *st1,char *st2)

{

 int d,j=0;

for(;p1>=st1&&q1>=st2;p1--,q1--,r1--)

{

  d=0;

if(*p1-*q1-j+'0'<'0')

  {

      *r1=*p1-*q1-j+10+'0';

      d=1;

  }

  else

      *r1=*p1-*q1-j+'0';

      j=d;

}

if(p1>=st1)

for(;p1>=st1;r1--,p1--)

  {   

      d=0;

if (*p1-j<'0')

      {

          *r1=*p1-j+10;

          d=1;

      }

      else

          *r1=*p1-j;

      j=d;

  }

  while(*r1=='0')

   r1++;

  printf("结果为:");

  while(*r1!='\\0')

   printf("%c",*(r1++));

  printf("\\n");

  system("pause");

}

    

void fujia(char *p1,char *q1,char *r1,char *st1,char *st2)

{

  r1++;

 int s,d,j=0;

for(;p1>=st1+1&&q1>=st2+1;p1--,q1--,r1--)

{

  d=0;s=*p1+*q1-'0';

if(*(p1+1)+*(q1+1)+j-'0'>'9')

   d=1;

  j=d;

if(*p1+*q1+j-'0'>'9')

  {

     s=*p1+*q1-'9'-1;

  }

     *r1=d+s;

}

if(*(p1+1)+*(q1+1)-'0'>'9')

  *r1+=1;

if(p1>=st1+1)

{

for(;p1>=st1+1;r1--,p1--)

  {

if(*r1+*p1>'9')

      *r1=-9,*(r1-1)+=1;

   *r1+=*p1;

  }

}

if(q1>=st2+1)

  {

for(;q1>=st2+1;r1--,q1--)

   {

if(*r1+*q1>'9')

    *r1=-9,*(r1-1)+=1;

    *r1+=*q1;

   }

  }

  *r1='-';

  while(*r1=='0')

   r1++;

  printf("结果为:");

  while(*r1!='\\0')

   printf("%c",*(r1++));

  printf("\\n");

  system("pause");

}

void fujian(char *p1,char *q1,char *r1,char *st1,char *st2)

{

   

int d,j=0;

for(;p1>=st1&&q1>=st2;p1--,q1--,r1--)

{

  d=0;

if(*p1-*q1-j+'0'<'0')

  {

      *r1=*p1-*q1-j+10+'0';

      d=1;

  }

  else

      *r1=*p1-*q1-j+'0';

      j=d;

}

if(p1>=st1)

for(;p1>=st1;r1--,p1--)

  {   

      d=0;

if (*p1-j<'0')

      {

          *r1=*p1-j+10;

          d=1;

      }

      else

          *r1=*p1-j;

      j=d;

  }

*r1='-';

  while(*r1=='0')

   r1++;

  printf("结果为:");

  while(*r1!='\\0')

   printf("%c",*(r1++));

  printf("\\n");

  system("pause");

}

void zuoyi(char *st,int k)

{

   char *s;

   s=st+k-1;

for(;st<=s;st++)

       *st=*(st+1);

       *st='\\0';

       

}

int comp(char *st1,char *st2,char *r)

{

for(;st1<=r;st1++,st2++)

{

if(*st1>*st2)

    

        return 1;

    

if(*st1<*st2)

    

        return 0;

    

}

      return 0;

}

文档

C语言实现大数加减运算 Vc6.0 完美运行

#include#include#include#includevoidmain(){voidjia(char*,char*,char*,char*,char*);voidjian(char*,char*,char*,char*,char*);voidfujia(char*,char*,char*,char*,char*);voidfujian(char*,char*,char*,char*,char*);voidzuoyi(char*,int);intcomp(char*,char*,cha
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top