永发信息网

C语言大数加法。

答案:2  悬赏:10  手机版
解决时间 2021-03-31 17:24
  • 提问者网友:心如荒岛囚我终老
  • 2021-03-31 09:51
C语言大数加法。
最佳答案
  • 五星知识达人网友:拜訪者
  • 2021-03-31 11:20
#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);
}运行结果

全部回答
  • 1楼网友:妄饮晩冬酒
  • 2021-03-31 12:26

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


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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯