问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

杭电ACM 1002为什么总是 Runtime Error(ACCESS_VIOLATION)?

发布网友 发布时间:2022-04-24 13:56

我来回答

1个回答

热心网友 时间:2023-10-15 08:48

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

void addbig(char *a, char *b)
{

    int ret;
    int c = 0;
    int lena = strlen(a);
    int lenb = strlen(b);
    int maxlen = (lena > lenb ? lena : lenb) + 1;
    int len = maxlen;

    char *sum = (char *) malloc(sizeof(maxlen + 1));

    memset((void *)sum, '0', maxlen);
    sum[maxlen--] = '\0';
    lena--;
    lenb--;

    while (lena >= 0 && lenb >= 0)
    {
        ret = a[lena--] - '0' + b[lenb--] - '0' + c;
        c = ret / 10;
        ret %= 10;
        sum[maxlen--] = ret + '0';
    }
    if (lena < 0)
    {
        while (lenb >= 0)
        {
            ret = b[lenb--] - '0' + c;
            c = ret / 10;
            ret %= 10;
            sum[maxlen--] = ret + '0';
        }
    }
    else if (lenb < 0)
    {
        while (lena >= 0)
        {
            ret = a[lena--] - '0' + c;
            c = ret / 10;
            ret %= 10;
            sum[maxlen--] = ret + '0';
        }
    }
    sum[maxlen] = c + '0';

    for (int i = 0; i < len; ++i)
    {
        if (i == 0 && sum[i] == '0')
            continue;
        printf("%c", sum[i]);
    }
    printf("\n");
    delete sum;//你忘了释放空间,导致多个样例使得动态开的空间不断增大,最后爆了,ps:你算的数组长度真的很精确,这是C++版本的释放空间,C版本目测用free,但是我不会,不好意思了。
}

int main()
{
    int n;
    scanf("%d", &n);
    char a[1001];
    char b[1001];

    for (int i = 0; i < n; ++i)
    {
        scanf("%s%s", a, b);

        printf("Case %d:\n", i + 1);
        printf("%s + %s = ", a, b);
        addbig(a, b);
        if (i != n - 1)
            printf("\n");
    }

    return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 Runtime Error (ACCESS_VIOLATION) 到底出错在哪里呢?在线等,acm 提交很多次都错 杭电ACM1004,Runtime Error,(ACCESS_VIOLATION) 关于ACM中Runtime Error at Test 1 (ACCESS_VIOLATION)的,程序和网址在下面,求大神解答!! 请问以下杭电acm 1009 代码为什么老显示Runtime Error (ACCESS_VIOLATION)啊?要怎么改? 杭电acm 2132题Runtime Error(ACCESS_VIOLATION) 杭电acm2023,Runtime Error (ACCESS_VIOLATION)? ...runtime error(access_violation)拜托各位大神 各位前辈:杭电acm HDU 1233题,最简单的最小生成树问题,但我的为什么总是access violation呢 杭电acm2132 Runtime Error(ACCESS_VIOLATION) 下面程序为什么在ACM中出现runtime error (access violation 为什么U盘内存是满的但却不显示内容,如何解决? ACM绝对值排序问题,为什么出现ACCESS_VIOLATION错误啊? 优盘里有东西,但是显示不出来怎么办? acm2018显示Runtime Error(ACCESS_VIOLATION) 做杭电acm题目时提交的代码出现ACCESS_VIOLATION错误。 杭电acm总是Runtime Error (ACCESS_VIOLATION) acm运行时显示RUNTIME_ERROR [ACCESS_VIOLATION,怎么解决? 如何解决ACM中ACCESS_VIOLATION的问题 怎么才能让别人登自己的QQ看不到聊天记录。详细点,,谢谢 关联QQ后删掉聊天记录怎样让对方不知道 杭电ACM第1005题,自己测试使用结果都是对的,但是提交后提示Runtime Error (ACCESS_VIOLATION) 怎么注销银行绑定的手机号码? 杭电acm 一直显示Runtime Error (ACCESS_VIOLATION) http:&#47;&#47;acm.hdu.edu.cn&#47;showproblem.php?pid=2030 银行卡丢了,绑定的手机号码注销了,怎么办? 之前绑定银行卡的手机号注销了,可以去银行从新绑定新的手机号吗 银行卡绑定的手机号注销了怎么办 工行银行卡预留手机号注销了怎么更换? 请问留学中介(正规 较有名)的申请顾问收入一般多少? 银行绑定的手机号码应该怎么注销? 男女同事用陌陌聊天正常吗? 陌陌这个聊天工具好不好 银行卡绑定的手机号码换了手机银行怎么登录 陌陌聊天软件,太不靠谱了,太假了,还是自己太天真了? 银行卡的预留手机号怎么改 用陌陌聊天能给我们带来什么?好处多还是坏处多?能通过它找到朋友和另一半吗? 银行柜面预留的手机号是啥意思? 陌陌上聊天,见面可靠吗 刚认识的陌陌男人聊什么好吗 之前听朋友说过 陌陌聊天软件,听到的是各种的不好,最近发现我女朋友没事就聊天,今晚吃饭时我拿她 陌陌是什么东西 聊天软件吗