zoukankan      html  css  js  c++  java
  • 大数的减法函数--c语言

    代码展示:   http://paste.ubuntu.com/23693598/

    #include<stdio.h>

    #include<stdlib.h>

    #include<string.h>

    char * largeDiffer(char *a,char *b){

    /*  使用说明

    传入的ab只能为整数

    结果为a-b;返回的为字符指针,注意数组不要越界 ,要加头文件string.h

    */

    int a_num[1000]={0},b_num[1000]={0};

    char result[1000];//返回的结果

    int a_len,b_len,i,j,cmp=-1,len,differ;

    a_len=strlen(a);//计算a,b的长度

    b_len=strlen(b);

    for(i=0;i<a_len;i++){

    a_num[a_len-i-1]=a[i]-'0';//a倒叙赋值

    }

    for(i=0;i<b_len;i++){

    b_num[b_len-i-1]=b[i]-'0';//a倒叙赋值

    }

    if(a_len>b_len) cmp=1;//a大于b返回1    否则,返回-1

    else if(a_len<b_len) cmp=-1;

    else cmp=strcmp(a,b);

    len=a_len>b_len?a_len:b_len;//返回较大值

    if(cmp==1){//a为     大数的时候

    for(i=0;i<len;i++){

    if(a_num[i]<b_num[i]){

    a_num[i]+=10;

    if(a_num[i]<0){

    a_num[i]=9;

    a_num[i+1]=a_num[i+1]-1;

    }

    a_num[i+1]=a_num[i+1]-1;

    differ=a_num[i]-b_num[i];

    a_num[i]=differ;

    }else{

    differ=a_num[i]-b_num[i];

    a_num[i]=differ;

    }

    }

    } else if(cmp==-1){//第一个输入的为小数的时候

    for(i=0;i<len;i++){

    if(b_num[i]<a_num[i]){

    b_num[i]+=10;

    if(b_num[i]<0){

    b_num[i]=9;

    b_num[i+1]=b_num[i+1]-1;

    }

    b_num[i+1]=b_num[i+1]-1;

    differ=b_num[i]-a_num[i];

    a_num[i]=differ;//

    }else{

    differ=b_num[i]-a_num[i];

    a_num[i]=differ;//

    }

    }

    }

    //输出格式

    i=len-1;

    while(a_num[i]==0) i--;//直到第一个不为0的数

    if(cmp==-1) {

    result[0]='-';

    for(j=1;i>=0;i--,j++)

    result[j]=a_num[i]+'0';

    result[j]='';

    } else{

    for(j=0;i>=0;i--,j++)

    result[j]=a_num[i]+'0';

    result[j]='';

    }

    return result;

    }

    int main(){

    char a[1000],b[1000];

    gets(a);

    gets(b);

    char result[1000];

    strcpy(result,largeDiffer(a,b));

    printf("%s",result);

    }

    编程爱好者 248351598

  • 相关阅读:
    leetcode算法题(JavaScript实现)
    使用git submodule管理一个需要多个分立开发或者第三方repo的项目
    linux下从源代码安装git
    git项目实战常用workflow和命令
    如何在linux console中显示当前你在的branch?
    git plumbing 更加底层命令解析-深入理解GIT
    如何直接在github网站上更新你fork的repo?
    git remotes
    git和其他版本控制系统的区别
    Git server安装和配置
  • 原文地址:https://www.cnblogs.com/banzhen/p/6227074.html
Copyright © 2011-2022 走看看