zoukankan      html  css  js  c++  java
  • 精度计算——减法

    语法:sub(char s1[],char s2[],char t[]);

    参数:

    a[]:被减数,用字符串表示,位数不限

    b[]:减数,用字符串表示,位数不限

    t[]:结果,用字符串表示

    返回值:null

    注意:

    • 默认s1>=s2,程序未处理负数情况

    • 需要 string.h

    启示:

    • 相减位数不会增加,不用倒置字符串
    • 计算完低位的差值,在判断高位是否有小于0时,注意是和字符’0’比较!!!

    源程序:

    void sub(char a[], char b[], char t[])
    {
    	int alen = strlen(a);
    	int blen = strlen(b);
    	t[alen] = '';
    	int i,j;
    	for(i=alen-1,j=blen-1; j>=0; i--,j--)
    	{//计算低blen位相减的结果,并存入t[]
    		if(a[i]-b[j]>=0)
    			t[i] = a[i]-b[j]+'0';
    		else
    		{//被减数的该位不够时,向前一位借位
    			t[i] = 10+a[i]-b[j]+'0';
    			a[i-1]--;
    		}
    	}
    	while(a[i]<'0')   //注意这里是字符'0'!!!!
    	{//向前扫描,若位数小于0,向前一位借位,并存入t[],位数大于0时停止扫描
    	    a[i] += 10;
    	    t[i] = a[i];
    	    a[--i]--;
    	}
    	while(i>=0)
    	{//将剩余的高高位存入t[]
    		t[i] = a[i];
    		i--;
    	}
    
    	//去除前导0
    	int cnt=0;
    	while(true)
    	{
    		if(t[cnt]=='0'&&cnt!=alen-1)
    			cnt++;
    		else
    			break;
    	}
    	strcpy(t,t+cnt);
    }
    
  • 相关阅读:
    图像按钮
    提交按钮
    文件上传域
    Python创建虚拟环境
    Typecho使用技巧
    面向对象
    Python语法入门
    Python 基础数据类型
    与用户交互
    MySQL5.7安装教程
  • 原文地址:https://www.cnblogs.com/zhanyeye/p/9746080.html
Copyright © 2011-2022 走看看