首页 > 解决方案 > 为什么我在 c 中收到“来自 abort(3) (SIGABRT) 的中止信号”运行时错误?

问题描述

我试图在 Geek4geeks 网站上提交问题的解决方案。我已经检查了解决方案,它似乎正确并且没有在代码块上显示运行时错误,但是它在网站上显示了来自 abort(3) (SIGABRT) 运行时错误的 Abort 信号。请帮助我了解这里出了什么问题。

这是我的代码:-

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

int greatestVol(int* volumes, int k);

int volumeCal(int* array, int N);

int main()
{
    int T, test, N, array[100], i=0;

    scanf("%d", &T);

    for(test=1;test<=T;++test)
    {
        scanf("%d", &N);
        for(i=0;i<N;++i)
        {
            scanf("%d", &array[i]);
        }
        printf("%d\n", volumeCal(array, N));
    }

    return 0;
}

int greatestVol(int* volumes, int k)
{
    int i, sol=0;

    for(i=0;i<k;++i)
    {
        if(volumes[i]>sol)
        {
            sol=volumes[i];
        }
        else
            continue;
    }

    return sol;
}

int volumeCal(int* array, int N)
{
    int i, j, k=0, volumes[100], tot=0;

    for(i=0;i<N;++i)
    {
        for(j=i+1;j<N;++j)
        {
            if(array[i]<array[j])
            {
                volumes[k]=array[i]*(j-i);
                ++k;
            }
            else
            {
                volumes[k]=array[j]*(j-i);
                ++k;
            }
        }
    }

    return greatestVol(volumes, k);
}

标签: cruntimeabort

解决方案


推荐阅读