Ответы пользователя по тегу C++
  • Как написать это на C++?

    @serhiops
    Python/JavaScript/C++
    Согласен с тем, что это задание, а не вопрос, но мне самому было интересно решить:
    #include <iostream>
    
    using std::cout, std::endl;
    
    void printArray(short** arr, const int N){
        for(int i{0}; i<N; ++i){
            for(int j{0}; j <  N - i; ++j){
                cout << arr[i][j] << ' ';
            }
            cout << endl;
        }
    }
    
    int main(int argc, char* argv[])
    {
        const int N{ 7 };
    
        short** arr = new short*[N];
    
        for(int i{ 0 }; i < N; ++i){
            arr[i] = new short[N - i];
            for(int j{0}; j < N - i; ++j){
                arr[i][j] = i + 1;
            }
        }
    
        printArray(arr, N);
    
        for(int i{ 0 }; i < N; ++i){
            delete[] arr[i];
        }
        delete[] arr;
        return 0;
    }
    Ответ написан
  • Почему компилятор не предупреждает о преобразовании int в uint8_t?

    @serhiops
    Python/JavaScript/C++
    При unform инициализации проверяется тип, чего не происходить при инициализации копированием
    Ответ написан
    3 комментария
  • Почему не выводится двумерный массив?

    @serhiops
    Python/JavaScript/C++
    Таке ж завдання виконував на останній лабораторній роботі.
    #include<iostream>
    #include<clocale>
    #include<iomanip>
    using namespace std;
    
    #define COLS 4
    
    int main(int argc, char** argv)
    {
        setlocale(LC_ALL, "Ukrainian");
        int w[][COLS] = {
            {1, 3, -8, 0},
            {-4, 6, 2, -5},
            {3, 7, 0, 6},
            {-3, 9, 11, -2}
        };
        cout << "Поточна матриця\n";
        for (int i{0}; i < COLS; ++i)
        {
            for (int j{0}; j < COLS; ++j)
                cout<< showpos <<w[i][j]<< setw(5);
            cout << '\n';
        }
    
        cout << "\nПеретворена матриця\n";
        for (int i{0}; i < COLS; ++i)
        {
            for (int j{0}; j < COLS; ++j)
            {
                if (w[i][j]>0 && w[i][j] < 6)
                    w[i][j] = 0;
                cout<< showpos <<w[i][j]<< setw(5);
            }
            cout << '\n';
        }
        return 0;
    }
    Ответ написан
    Комментировать
  • Как убрать ошибку с кодировкой при записи в файл?

    @serhiops
    Python/JavaScript/C++
    Консоль по умлочнаию не настроена на кирилицу. Подключи #include<clocale>, а в начале main вставь
    setlocale(LC_ALL, "Russian");
    Ответ написан
    Комментировать
  • Почему идентификатор не определен?

    @serhiops
    Python/JavaScript/C++
    for (int a = 2; a < 18; a++)
      {
        float t = 4 * a;
        cout << "z=" << 3.5 * pow(t,2) - 7 * t + 16 << "\n";
      }

    При первом варианте выходит, что ты 16 раз создаёшь переменную t и копируешь в него значение 4 * a. А при окончании цикла переменная t уничтожается(так как выходит из области видимости).
    {
        cout << "z=" << 3.5 * pow(t,2) - 7 * t + 16 << "\n";
     }

    А этот этот участок никак не относится к циклу. Просто создали вложенную область видимости.
    Ответ написан
    1 комментарий
  • Как разделить строку до и после определённого символа?

    @serhiops
    Python/JavaScript/C++
    Стандартного способа нет, нужно либо самому функцию писать, либо искать какие-то библиотеки. Ну еще можно попробывать из класса string сделать С-шную строку и использовать strtok:
    char *s = new char[yourString.size() + 1];
    strcpy(s, yourString.c_str());
    char *p = strtok(s, "^");   //тут указываете разделитель
    while (p! = NULL) {
        cout << p << endl;
        p = strtok(NULL, "^");
    }
    delete[] s;
    Ответ написан
    Комментировать
  • Почему появляется бесконечный вывод?

    @serhiops
    Python/JavaScript/C++
    тип short unsigned вмещает число от 0 до 65,535. Когда ты пытаешься впихнуть слишком большое число, то происходит переполнение. Это можно исправить если подберешь тип переменной побольше: unsignet long , long long и тд
    Ответ написан
    Комментировать
  • Как замерить производительность i/o?

    @serhiops
    Python/JavaScript/C++
    #include <chrono>
    #include <iostream>
    
    class Timer
    {
    public:
        Timer()
        {
            start = std::chrono::high_resolution_clock::now();
        }
        ~Timer(){
            end = std::chrono::high_resolution_clock::now();
            std::chrono::duration<float> duration = end - start;
            std::cout << "Time : "<<duration.count()<<endl;
        }
    private:
        std::chrono::time_point<std::chrono::high_resolution_clock> start, end;
    };
    int main(){
        Timer t;
        //весь остальной код
    }

    В конце выполнения программы в консоль выведется время, потраченное на его выполнение
    Ответ написан
    3 комментария