Рекурсия POW: предупреждение: контроль может достичь конца не пустой функции - PullRequest
0 голосов
/ 22 сентября 2019

Это рекурсивная функция для достижения пау.Почему компилятор выдает предупреждение: «warning: элемент управления может достигнуть конца непустой функции»

Одним из решений является добавление «return 0» в нижней части функции, но покрытие не получит 100%, так как решить эту проблему?

Спасибо!

double pow_recur( double base, int exponent )
    {
        if (base == 0) {
            return 0;
        }
        if (exponent == 0) {
            return 1.0;
        } else if (exponent > 0) {
            if (exponent % 2 == 0) {
                return pow_recur(base * base, exponent / 2);
            }
            if (exponent % 2 == 1) {
                return base * pow_recur(base * base, (exponent - 1) / 2);
            }
        } else {
            return 1.0 / pow_recur(base, -exponent);
        }
    }

1 Ответ

1 голос
/ 23 сентября 2019

Если вы проверяете, является ли показатель четным, измените его на if-else, и предупреждение должно исчезнуть.Не нужно проверять четность и нечетность, если она не четная, она должна быть нечетной.

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