永发信息网

大整数加法怎么写.c语言

答案:1  悬赏:70  手机版
解决时间 2021-04-02 15:19
大整数加法怎么写.c语言
最佳答案
#include 
#include 
#include 
#define SIZE 100  //最高相加位数,可修改; 

void fanzhuan(char *x);  //反转字符串,方便相加;
char *jiafa(char *x, char *y); //高精度加法函数
 
int main(void)
{
    char num1[SIZE] = {0};
    char num2[SIZE] = {0};
    printf("请输入第一个数:"); 
    gets(num1);
    printf("请输入第二个数:"); 
    gets(num2);
    printf("相加结果:%s
", jiafa(num1, num2));
    return 0;
}

void fanzhuan(char *x)
{
    char t = 0;
    
    for(size_t i = 0, j = strlen(x) - 1; i < j; ++i, --j)
    {
        t = x[i];
        x[i] = x[j];
        x[j] = t;
    }
}

char *jiafa(char *x, char *y)
{
    fanzhuan(x);
    fanzhuan(y);
    char *temp = (char*)calloc(SIZE + 1,sizeof(char));
    char *t1 = strlen(x) < strlen(y) ? x : y;
    char jinwei = 0;
    size_t i = 0;
    
    for(; i < strlen(t1); ++i)
    {
        if(x[i] + y[i] + jinwei > 'i')
        {
            temp[i] =  x[i] + y[i] + jinwei - ':';
            jinwei = 1; 
        }
        
        else
        {
            temp[i] = x[i] + y[i] + jinwei - '0';
            jinwei = 0;
        }
    }
    
    char *t2 = strlen(x) > strlen(y) ? x : y;
    
    for(i = strlen(t1); i < strlen(t2); ++i)
    {
        if(t2[i] + jinwei > '9')
        {
            temp[i] = t2[i] + jinwei - 10;
            jinwei = 1;
        }
        
        else
        {
            temp[i] = t2[i] + jinwei;
            jinwei = 0;
        }
    }
    
    if(jinwei)
        temp[i] = '1';
        
    fanzhuan(temp);
    return temp;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
其实根本没那么可怕好吗
谁认识高月
小明有五盒奶糖,小强有四盒水果糖,共值44元
刚从马哈鱼肚子里拿出来的鱼籽怎么处理啊?
有一个超级完美的女友,是什么体验
美的bcd-216tgma冰箱冷藏室温度怎么调整
45日均线是什么意思
忠缘殡葬用品服务部地址有知道的么?有点事想
舌头下面有肉芽
欧陆直流调速器没有励磁电流是什么原因
姜花怎么只看了两天就不行了?
L,N,E在功放机的意思
小海伢感统训练中心地址好找么,我有些事要过
如何才能查询有没有在驾校一点通上报过名
和沃相像的字,换偏旁组词。
推荐资讯
你是我命里良人用古文怎么说
两层楼可以改装成复式楼吗?
寿司里吃的一种黄色的是什么鱼
绿扬茶社地址有知道的么?有点事想过去!
我想加盟新生活集团,想问一下可以吗
真的是我过于追求完美,不容许我自己有一点缺
煮熟豆子现磨为什么底下会有好多渣汁了
老谢家酒店在什么地方啊,我要过去处理事情
怎么在keil4中添加kinetis_k60_系列
当兵在外人员问候语
如何评价打一棒子给个枣这种教育方式
大侠求指点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?