Непонятная инициализация данных многомерного массива

введите сюда описание изображения

Вообще программа для проверки принадлежности булевой функции к классам поста, все остальное, кроме описаного ниже работает как надо вроде.

Фрагмент кода на скриншоте должен присваивать первому массиву многомерного массива "polinom" значения введенной пользователем строки "function". Для наглядности добавил вывод присвоенного значения, должно выводить 0101, а выводит - 1 49 48 49, в чем моя ошибка, может в преобразовании типов string в int, или ошибка где-то в коде и я просто проглядел. гпт спрашивал - отвечает не по делу и бесполезные советы дает. Для полноты приложу полный код:

[spoiler]



/*Написати програму визначення приналежності системи булевих функцій до класів
Посту.Вхідні дані - кількість функцій, кількість змінних, значення булевих функцій.
Вихідні дані - поліном Жегалкіна, критеріальна таблиця*/


#include <iostream>
#include <string>
#include <bitset>
#include <algorithm>
using namespace std;



void post(string function)
{
    //T0
    if (function[0] = 1)
    {
        cout << endl << "T0 - Negative";
    }
    else
        cout << endl << "T0 - Positive";

    //T1
    if (function[function.length()] = 0)
    {
        cout << endl << "T1 - Negative";
    }
    else
        cout << endl << "T1 - Positive";

    //L
    int** polinom = new int* [ function.length()] ; //динамічний масив для звереження даних трикутника ньютона
    for (int q= 0; q < function.length(); q++)
    {
        polinom[q] = new int[function.length() - q];
        //cout << polinom[q] << " "; //ячейки памяти оно присваивает разніе
    }

    for (int w = 0; w < function.length(); w++) //заповнення першого рядка трикутника
    {
        polinom[0][w] = function[w]; //stoi(function[w]); //string(1, function[w]); //static_cast<string>(function[w]); //function[w];
        //cout << function[w] << " ";
        cout << polinom[0][w] << " "; //вот тут откудато 49 47 взялись
    }

    for (int i = 0; i < function.length(); i++) 
    {
        
        
            for (int n = 0; n < (function.length() - i); n++) //заповнення інших рядків трикутника
            {
                
                //cout << endl << polinom[i][n]; //какаято фигня с памятью видно тут в консоли
                    if (polinom[i][n] != polinom[i][n+1])
                    {
                        polinom[i][n] = 1;
                    }
                    else
                        polinom[i][n] = 0;
                

            }
        
    }
    cout << endl << "Polynomical vector: ";
    for (int e = 0; e!= function.length(); e++) //для виводу левой стороны треугольника
    {
        cout << polinom[e][0] ;
    }
    int count = 0;
    cout << endl;
    int e;
    for (e = 0; e != function.length(); e++) //для виводу левой стороны треугольника
    {
        //cout << endl << polinom[e][0] << endl;
        if (polinom[e][0] == 1)
        {

            bitset<4> binary(e);//binary(polinom[e][0]); //тут какаято фигня с записю в массив
            cout << binary << "(+)";
            count++;
        }
        
    }
    if (count > 1)
    {
        cout << endl << "L - Negative";
    }
    else
        cout << endl << "L - Positive";

    //M
    int count2 = 0;
    for (int t = 0; t < function.length(); t += 2)
    {
        if (function[t] > function[t + 1])
            count2++;
    }
    if (count2 > 0)
        cout << endl << "M - Negative";
    else 
        cout << endl << "M - Positive";

    //S
    string copy = function;
    reverse(copy.begin(), copy.end()); //перевернути вектор
    for (int r = 0; r != function.length(); r++) //инверсувати
    {
        if (copy[r] == 1)
            copy[r] = 0;
        else
            copy[r] = 1;
    }
    if (copy == function)
        cout << endl << "S - Positive";
    else
        cout << endl << "S - Negative";
}

int main()
{
    int amount;
    cout << endl << "Type amount of bool functions: ";
    cin >> amount;
    string  function;
    while (amount != 0)
    {
        cout << endl << "Enter bool function: ";
        cin >> function;
        //cout << function.length();
       
        if ( function.length() != 4 && function.length() != 8 && function.length() != 16 )
        {
            cout << "Wrong vector size ";
            main();
        }        
        post(function);
        amount--;
    }
    
}



[/spoiler]


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