⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch0_bigint2.c

📁 本人讲授数据结构课程时的所写的示例程序
💻 C
字号:
/*
长整数2
author: kk.h
date: 2006.9
http://www.cocoon.org.cn
*/
#include "stdio.h"
char* add(char *b1,char *b2)
{
  char *r; char b1i,b2i;
  int b1len,b2len,rlen,i1,i2,i,a,t;
  b1len=strlen(b1);
  b2len=strlen(b2);

  if (b1len>b2len)
    rlen=b1len+1;
  else
    rlen=b2len+1;

  r=(char*)malloc(rlen+1);

  t=0;
  i1=b1len-1;i2=b2len-1; i=rlen-1;
  while (i1>=0 || i2>=0){
    if (i1>=0) b1i=b1[i1]; else b1i='0';
    if (i2>=0) b2i=b2[i2]; else b2i='0';
    a = b1i+b2i-2*'0'+t;
    if (a>=10){
      t=1;a=a-10;  
    }else
      t=0;
    r[i] = a+'0';
    i1--;i2--;i--;
  }
  if(t>0)
    r[0] = '1';
  else
    r[0] = '0';

  r[rlen]='\0';
  return r;
}

char* init(char *data)
{
  char *bigint;
  int i;
  bigint = (char*)malloc(strlen(data)+1);

  for (i=0;i<strlen(data);i++)
    bigint[i] = data[i];

  bigint[i]='\0';
  return bigint;
}

main()
{
  int i;
  char *bigint1=NULL,*bigint2=NULL,*r=NULL;

  bigint1 = init("23641");
  bigint2 = init("62");

  r = add(bigint1,bigint2);

  for(i=0;i<strlen(r);i++)
    printf("%c",r[i]);

  free(bigint1); free(bigint2); free(r);
  getch();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -