Никак не могу понять, почему таблица отображается некорректно
#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;
}
Выглядит таблица вот так:
Есть строка, в которой встречаются такие вещи, как ((число)
Как отфильтровать по русскому алфавиту значения одной из нескольких переменной, которые выводятся через цикл foreach?
Помогите разобраться с запросом к API с JWT авторизациейВ идеале пример кода