永发信息网

C语言大数加法。

答案:2  悬赏:10  手机版
解决时间 2021-03-31 17:24
C语言大数加法。
最佳答案
#include
#include
void main( ) {
    char a[1000], b[1000], c[1001] = {0}, flag = 0; 
    int i, j, k, m, n, len;
    scanf("%s%s", a, b);
    m = strlen(a);
    n = strlen(b);
    len = (m > n) ? m : n;

   
    for(i = m - 1, j = n - 1, k = len - 1; i >= 0 && j >= 0; i--, j--, k--)
    {
        c[k] = (a[i] - '0' + b[j] - '0' + flag) % 10 + '0';
        flag = (a[i] - '0' + b[j] - '0' + flag) / 10;
    }
    for(; i >= 0; i--, k--) 
    {
        c[k] = (a[i] - '0' + flag) % 10 + '0';
        flag = (a[i] - '0' + flag) / 10;
    }
    for(; j >= 0; j--, k--) 
    {
        c[k] = (b[j] - '0' + flag) % 10 + '0';
        flag = (b[j] - '0' + flag) / 10;
    }
    if(flag != 0)
    {
        for(k = len; k > 0; k--)
            c[k] = c[k - 1];
        c[0] = flag + '0';
    }
    printf("%s + %s = %s
", a, b, c);
}运行结果

全部回答

思路不好,再细也没有用,见下面的代码,五行搞定。


int i, a[100], b[100], c[100];
for (i = 0; i < 100; ++i) 
    c[i] = a[i] + b[i];    

for (i = 0; i < 100; ++i) {
    c[i+1] += c[i] / 10; 
    c[i] %= 10;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
maybe one day什么意思
日文中阔咧哇,索爹是捏的意思,
5.63➗6.1的竖式怎么写
小学1-6年级常用的货币单位
2015-4-17日东方电气放量涨停且盘中多次打开
大连哪里有比较好的舞蹈学校?学芭蕾~
降字老写几笔
下图是古代中国某朝代中枢机构示意图(局部)
施工合同备案无劳务分包的情况说明怎么写
外地车在武夷山市被拍照怎么处理
为什么说,由概率,得不出事件的结论
喝过蜂蜜水能吃熟葱吗
求文,貌似网游文,女主游戏名为:陌上蔷薇,
上海田子坊的那家天空音乐盒的“墨西哥魔音铃
下列与我国地势有关的说法中正确的是A.所有大
推荐资讯
蜻蜓喜欢什么气味,上次看到有些人轻易
比亚迪s6p2178空燃比闭环控制自学值超下限是
用你喜欢的方式计算(1)四分之三× 45% +0.7
Linux当中如何安装字体
我身高153体重100斤,我胖吗
冰从眼前过,不溜是罪过?
古代欧洲妇女裙摆那么长,不会很脏吗?
150ml酒是多少克?
大家帮我看看袁大头上面有甘肃两个字,能值多
胶南有什么特色餐馆啊
B2可以开什么车
人工大理石价格是不是骗人的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?