У меня проблема с этой проблемой. В нем говорится, что я разрешил программе находить минуты, макс и диапазон, когда пользователь вводит минимальный диапазон и максимальный диапазон.Min, Max, Range
Здесь код у меня есть:
#include <iostream>
#include <string>
#include <cmath>
#include <iomanip>
#define pi 3.1416
#define POINTS 20
using namespace std;
int main()
{
int Xmin, Xmax;
double step;
cout << "Enter a value for xMin and xMax:\n";
cin >> Xmin >> Xmax;
step = (double)(Xmax - Xmin)/(double)POINTS;
cout << "X-VALUES " << "" << "| " << "" << "Y-VALUES" << endl;
cout << "_________" << "" << "|_" << "" << "_________" << endl;
for (int i = 0; i < POINTS; ++i)
{
double x = Xmin + (step * i);
double y = 0.0572 * cos(4.667 * x) + 0.0218 * pi * cos(12.22 * x);
cout << x << "\t " << setprecision(2) << y << endl;
}
cout << "____________________" << endl;
return 0;
}
Я здесь выход моей программы:
X-Value | Y-Value
__________|__________
-2 -0.0043
-1.8 -0.0982
-1.6 0.0378
-1.4 0.0438
-1.2 0.0099
-1 0.0618
-0.8 -0.1118
-0.6 -0.0198
-0.4 -0.0047
-0.2 -0.0184
0 0.1257
0.2 -0.0184
0.4 -0.0047
0.6 -0.0198
0.8 -0.1118
1 0.0618
1.2 0.0099
1.4 0.0438
1.6 0.0738
1.8 -0.0982
2 -0.0043
─────────────────────
В принципе, эта программа все готово имеет уравнение, которое вычисляет числа и их список на основе пользовательских входов для Xmin и Xmax. Я полагаю, чтобы программа нашла min, max и вычислила его диапазон от Y-Значений из приведенной выше таблицы.
Вот мой код для поиска мин и макс.
#include <iostream>
#include <string>
#include <cmath>
#include <iomanip>
#include <limits>
#define pi 3.1416
#define POINTS 20
using namespace std;
int main()
{
int Xmin, Xmax;
double step;
int max = numeric_limits<int> :: min();
int min = numeric_limits<int> :: max();
int num = 0;
cout << "Enter a value for xMin and xMax:\n";
cin >> Xmin >> Xmax;
step = (double)(Xmax - Xmin)/(double)POINTS;
cout << "X-VALUES " << "" << "| " << "" << "Y-VALUES" << endl;
cout << "_________" << "" << "|_" << "" << "_________" << endl;
for (int i = 0; i < POINTS; ++i)
{
double x = Xmin + (step * i);
double y = 0.0572 * cos(4.667 * x) + 0.0218 * pi * cos(12.22 * x);
//printf(" %f\t%f\n ", x, y);
cout << x << "\t " << setprecision(2) << y << endl;
}
cout << "____________________" << endl;
while (cout << "Enter a value for xMin and xMax:\n" &&
cin >> Xmin >> Xmax)
{
if (num > max) max = num;
if (num < min) min = num;
}
cout << "max is: " << max << '\n'
<< "min is: " << min << '\n';
return 0;
}
Он работает, но не распечатывает мин или макс. Он просто повторяет программу на «введите Xmin и Xmax». Но когда я вхожу в какой-нибудь летер, он печатает мин и макс. Помоги мне. Я смущен.
Сохраните значения в массиве и используйте - насколько это возможно - стандартные алгоритмы для вычисления желаемого результата (например, 'std :: minmax_element',' std :: nth_element' (для медианы), 'std :: accumulate' (для среднего значения)) – MikeMB
Что касается ошибки: я не знаю, что вы думаете о своей программе, но компилятор сообщает вам, что именно не так: вы читаете из 'num', не инициализируя его значением. – MikeMB
'while (cout <<" Введите значение для xMin и xMax: \ n "&& cin >> Xmin >> Xmax)' серьезно? –