В чем ошибка?

Dev C++ компилирует без проблем, но во время выполнения программы она вылетает... Не могу понять почему.

#include <iostream>
using namespace std;

int power(int a, int n)
{
    if (n = 0)
        return 1;
    return a*power(a, n - 1);
}

int main()
{
    int a, n;
    cin >> a >> n;
    cout << power(a, n);
    return 0;
}

Здесь у тебя

    if (n = 0)

оператор присваивания. А должен быть оператор сравнения.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.