Необработанное исключение по адресу 0x007629C4 в ConsoleApplication1.exe: 0xC0000094: Integer division by zero

при запуске выдает ошибку деления на 0 в строке int sr = summa(t) / kol(t); задачей было определить, верно ли, что сумма элементов дерева больших среднего арифметического листьев дерева равна заданному числу N.
Вот сам код struct tree

{
    int info;
    tree* l;
    tree* r;
};
void add(tree* t, int x)
{
    tree* tek = t;
    tree* prev = NULL;
    while (tek != NULL)
    {
        prev = tek;
        if (x < tek->info)
            tek = tek->l;
        else
            tek = tek->r;
    }
    tree* l = new tree;
    l->info = x;
    l->l = NULL;
    l->r = NULL;
    if (x < prev->info)
        prev->l = l;
    if (x > prev->info)
        prev->r = l; 
}

int summa(tree* t)
{
    if (t == NULL)
        return 0;
    else if (t->l == NULL && t->r == NULL)
        return t->info;
    else
        return summa(t->l) + summa(t->r);
};
int kol(tree* t)
{
    if (t == NULL)
        return 0;
    else
        if (t->l == NULL && t->r == NULL)
            return 1;
        else
            return kol(t->l) + kol(t->r);
}
int summbol(tree* t)
{
    int sr = summa(t) / kol(t);
    if (t == NULL)
        return 0;
    else
        if (t->info > sr)
            return t->info + summbol(t->r) + summbol(t->r);
        else
            return  summbol(t->r) + summbol(t->r);
}
void print(tree* t)
{
    cout << t->info;
    print(t->l);
    print(t->r);
}
int main()
{
    tree* t = new tree;
    int x;
    cin >> x;
    t->info = x;
    t->l = NULL;
    t->r = NULL;
    cin >> x;
    while (x)
    {
        add(t, x);
        cin >> x;
    }
    cout << summa(t) << " " << kol(t)<<endl;
    int n;
    cout << "N = ";
    cin >> n;
    if (n == summbol(t))
        cout << endl<< "verno";
    else
        cout << endl << "net";
    return 0;
}

Ответы (0 шт):