Почему 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;
}
Answers & Comments
Verified answer
Программа:
#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