error: function definition is not allowed here { ^

Писал код в С++ и теперь нужно его перевести в Jupyter Notebook, часть ошибок исправил, но две ошибки формата: input_line_32:20:1: error: function definition is not allowed here { ^ не могу исправить, код:

#include <iostream>
#include <iomanip>
using namespace std;
 
struct wiel {
    int coeff;
    int pow_val;
    wiel* nowy;
};
 
class dodaj {
    wiel *wiel1, *wiel2, *wiel3;
 
public:
    dodaj() { wiel1 = wiel2 = wiel3 = NULL; }
    void dodaj_wiel();
    void wyświetl();
};
 
void dodaj::dodaj_wiel()
{
    int i, p;
    wiel *nowy1 = NULL, *koniec = NULL;
    cout << "Wpisz x :\n"; cin >> p;
    //Pierwszy Wielomian
    cout << "\nPierwszy Wielomian\n"; for (i = p; i >= 0; i--) {
        nowy1 = new wiel;
        nowy1->pow_val = p;
        cout << "Wprowadź Współczynnik dla stopnia " << i << ": "; cin >> nowy1->coeff;
        nowy1->nowy = NULL;
        if (wiel1 == NULL)
            wiel1 = nowy1;
        else
            koniec->nowy = nowy1;
        koniec = nowy1;
    }
 
    //Drugi Wielomian
    cout << "\n\nDrugi Wielomian\n"; koniec = NULL; for (i = p; i >= 0; i--) {
        nowy1 = new wiel;
        nowy1->pow_val = p;
        cout << "Wprowadź Współczynnik dla stopnia " << i << ": "; cin >> nowy1->coeff;
        nowy1->nowy = NULL;
        if (wiel2 == NULL)
            wiel2 = nowy1;
        else
            koniec->nowy = nowy1;
        koniec = nowy1;
    }
 
    //Addition Logic
    wiel *p1 = wiel1, *p2 = wiel2;
    koniec = NULL;
    while (p1 != NULL && p2 != NULL) {
        if (p1->pow_val == p2->pow_val) {
            nowy1 = new wiel;
            nowy1->pow_val = p--;
            nowy1->coeff = p1->coeff + p2->coeff;
            nowy1->nowy = NULL;
            if (wiel3 == NULL)
                wiel3 = nowy1;
            else
                koniec->nowy = nowy1;
            koniec = nowy1;
        }
        p1 = p1->nowy;
        p2 = p2->nowy;
    }
}
 
void dodaj::wyświetl()
{
    wiel* t = wiel3;
    cout << "\n\nWyprowadź wynik : ";
    while (t != NULL) {
        cout.setf(ios::showpos);
        cout << t->coeff;
        cout.unsetf(ios::showpos);
        cout << "X" << t->pow_val;
        t = t->nowy;
    }
}
int main;
{
    dodaj obj;
    obj.dodaj_wiel();
    obj.wyświetl();
}

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

Автор решения: Harry

Скажите, как правильно объявляется функция? Например, возведения в квадрат?

Что-то типа

double square; { return x*x; }

Так? Вы посмотрите и явно скажете - что за кретин... Конечно

double square(double x) { retur x*x; }

Тогда почему вы написали объявление функции main как

int main;
{

В результате у вас получилось объявление переменной main типа int + код вне функции.

Скажите, вы в самом деле этого не видели?

→ Ссылка