Почему c++ не выводит то, что запечатано в условии for?
необязательно: как можно уменьшить потребление памяти?
( прикрепил)
p.s. по условию количество шагов (n) = 10
#include
#include
using namespace std;
int main()
{
setlocale(lc_all, "rus");
int n; float a, b, d, x, f; double i;
n = 0;
if (n < 2)
{
cout < < "введи кол-во шагов="; cin > > n;
}
cout < < "введите левую границу отрезка="; cin > > a;
cout < < "введите правую границу отрезка="; cin > > b;
if (a == b)
{
cout < < "вы ввели точку, а не отрезок" < < endl;
cout < < "введите ещё раз a и b: " < < endl;
cout < < "a="; cin > > a;
cout < < "b="; cin > > b;
}
d = (b - a) / n;
x = a;
for (i=a; i< =b; i=i+d)
{
if (i == 10)
{
cout < < "нет значения";
x = x + d;
}
else
{
f = ((sin(x - 10)) / (x - 10)) + exp(x - 10);
cout < < "x=" < < x; cout < < " "; cout < < "f(x)=" < < f < < endl;
x = x + d;
}
}
return 0;
}
Программа:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int N; float A, B, h, x, f;
cout << "Введи кол-во шагов="; cin >> N;
cout << "Введите левую границу отрезка="; cin >> A;
cout << "Введите правую границу отрезка="; cin >> B;
if (A == B)
{
cout << "Вы ввели точку, а не отрезок" << endl;
cout << "Введите ещё раз A и B:" << endl;
cout << "A="; cin >> A;
cout << "B="; cin >> B;
}
x = A;
h = (B - A) / N;
for (int i=0; i<=N; i++)
{
if (x-N == 0)
cout << "x=" << x << " " << "f(x) - Нет значения"<< endl;
else
{
f = ((sin(x - N)) / (x - N)) + exp(x - N);
cout << "x=" << x << " " << "f(x)=" << f << endl;
}
x = x+h;
}
return 0;
}
Пример:
Введи кол-во шагов=10
Введите левую границу отрезка=5
Введите правую границу отрезка=15
x=5 f(x)=-0.185047
x=6 f(x)=-0.170885
x=7 f(x)=0.0968271
x=8 f(x)=0.589984
x=9 f(x)=1.20935
x=10 f(x) - Нет значения
x=11 f(x)=3.55975
x=12 f(x)=7.8437
x=13 f(x)=20.1326
x=14 f(x)=54.4089
x=15 f(x)=148.221