с++ вывод в виде таблицы

277
13 июня 2022, 04:40

Никак не могу понять, почему таблица отображается некорректно

 #include <iostream>
#include <iomanip>
#include <cmath>
#include <limits>
#include <sstream>
//#include <windows.h>
#define COLS 23
using namespace std;
int size(int ac, char *av[]);
int str(double number);
int main (int ac, char *av[]) {
    //SetConsoleOutputCP(1251);
    //SetConsoleCP(1251); 
    
    double x, y, p, h=0.05;
    int c = size(ac, av);
    cout.precision(3);
    int i, b, columns=6, page = 1;
    cout << "p= ";
    cin >> p;
    while (abs(p)>3) {
        cout << "Введите параметр p ∈ [-3;3]" << endl;
        cout << "p= ";
        cin >> p;
    }
    cout << "x= ";
    cin >> x;
    while ((x<-2.7)||(x>2.3)) {
        cout << "Введите аргумент х ∈ [-2.7;2.3]" << endl;
        cout << "x= ";
        cin >> p;
        i++;
    }
    i=1; b=c*4;        while (i<=b) { cout << " "; i++; } cout << "Экран №" << page << endl;
    i=1; b=c*1.8;     while (i<=b) { cout << " "; i++; } cout << "Таблица значений функции" << endl;
    i=1; b=c*1.8;     while (i<=b) { cout << " "; i++; } cout << "При параметре " << p << endl;
    int k, m;
    i=1;      while (i<=columns) { 
        cout << "|"; 
        k=1; m=c/1.5;
        while (k<=m) { 
            cout << "-"; 
            k++; 
        } 
        i++; 
    } 
    cout << "|" << endl;
    cout << "|       x       |     f(x)      |       x       |     f(x)      |       x       |     f(x)      |" << endl;
    i=1;      while (i<=columns) { 
        cout << "|"; 
        k=1; m=c/1.5;
        while (k<=m) { 
            cout << "-"; 
            k++; 
        } 
        i++; 
    } 
    cout << "|" << endl;
    
    int count = 0;
    if (count == 10) {
        count = 0;
        page++;
        cout << "Для продолжения нажмите ENTER";
        char temp;
        cin.get(temp);
        cin.ignore(numeric_limits<streamsize>::max(),'\n');
        cout << endl << endl;
        i=1; b=c*4;    while (i<=b) { cout << " "; i++; } cout << "Экран №" << page << endl;
        i=1;      while (i<=columns) { cout << "|"; k=1; m=c/1.5;
            while (k<=m) { cout << "-"; k++; } i++; } cout << "|" << endl;
    }
    while (x >= -2.7 && x <= 2.3) {
        int r, g=1;
        while (g<=(columns/2)) {
            if (x >= atan(p-2)) y = pow((x*x*x*x + 1)/(0.2 + p*p*x*x), 1/3);
            if (x < atan(p-2))  y = log10(2*M_PI + pow(M_E, abs(p*x)));
            cout << "|";
            if ((int)x!=x)  r = str(x); 
            for (i=1; i<=(15/2-r); i++)    cout << " ";
            cout << x;
            for (i=1; i<=(15/2-r); i++)    cout << " ";
            cout << "|";
            if ((int)y!=y) { r = str(y); }
            for (i=1; i<=(15/2-r); i++)    cout << " ";
            cout << y;
            for (i=1; i<=(15/2-r); i++)   cout << " ";
            x = x + h;
            g++;
        }
        cout << "|" << endl;
        i=1;      while (i<=columns) { cout << "|"; k=1; m=c/1.5;
        while (k<=m) { cout << "-"; k++; } i++; } cout << "|" << endl;
        count++; //куда воткнуть чтобы считались строки
        
    }
       
        }

    

int str(const double number) {
    stringstream ss;
    int t=0, m=0;
    ss << setprecision(3) <<  number;
    string strNum = ss.str();
    size_t pos = strNum.find('.');            //как посчитать и - и . и цифорки
    size_t min = strNum.find('-');
    if (pos!=0) t=1;
    if (min!=0) m=1;
    return  strNum.size() - t - m - 1;
}
int size(int ac, char *av[]) {
    int cols = av[1] ? atoi(av[1]) : COLS;
    if (cols < 0)
        cols = COLS;
    return cols;
}

Выглядит таблица вот так:

READ ALSO
regex - как правильно убрать вложенные скобки?

regex - как правильно убрать вложенные скобки?

Есть строка, в которой встречаются такие вещи, как ((число)

278
Как скомилировать такой шаблон

Как скомилировать такой шаблон

Не пойму как правильно написать invoke чтоб компилировалось

247
Как отфильтровать значение переменной в цикле?

Как отфильтровать значение переменной в цикле?

Как отфильтровать по русскому алфавиту значения одной из нескольких переменной, которые выводятся через цикл foreach?

281
Необходимо сформировать GET или POST запрос к API с JWT авторизацией

Необходимо сформировать GET или POST запрос к API с JWT авторизацией

Помогите разобраться с запросом к API с JWT авторизациейВ идеале пример кода

231