Как исправить ошибку во время выполнения SIGFPE на этой программе - PullRequest
0 голосов
/ 18 апреля 2020

Я работаю на Hacker earth и продолжаю получать ошибку времени выполнения SIGFPE, теперь нужно FIX. Мне нужно рабочее решение, я попробовал немного обойтись без удачи. Я всегда получаю ошибку времени выполнения SIGFPE, когда я отправляю ее (местный сайт практики программирования).

Мой код указан ниже:

#include <stdio.h>

long long int
checkRange(long long int result, int start, long long int end)
{
    do {
//printf("Invalid data range.\n Please enter the value between %d and %lld: ",start,end);
        scanf("%lld", &result);
    } while (result < start || result > end);

    return result;
}

long long int
getMinvalue(long long int elementarray[], int count)
{
    long long int min;
    int i = 0;

    for (i = 0; i < count; i++) {
        if (i == 0) {
            min = elementarray[i];
        }
        else if (elementarray[i] < min) {
            min = elementarray[i];
        }
    }

    return min;
}

int
main()
{
    int i = 0;
    long long int eCount = 3, result, min;
    static long long int maxrange = 1000000000000000000;

//printf("please enter the candy type count:");
//scanf("%lld",&eCount);
    if (eCount < 1 || eCount > 100) {
        eCount = checkRange(eCount, 1, 100);
    }
    long long int a[eCount], bagsize;

    for (i = 0; i < eCount; i++) {
//printf("please enter candy %d value :",i);
        scanf("%lld", &a[i]);
        if (a[i] < 1 || a[i] > maxrange) {
            a[i] = checkRange(a[i], 1, maxrange);
        }
    }

//printf("please enter bagsize: ");
    scanf("%lld", &bagsize);
    if (bagsize < 1 || bagsize > maxrange) {
        bagsize = checkRange(bagsize, 1, maxrange);
    }
    min = getMinvalue(a, eCount);
    result = (min * eCount) / bagsize;
    printf("%lld", result);

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...