gpt4 book ai didi

c++ - 二分法输入方程,C++

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:31:49 26 4
gpt4 key购买 nike

我有这个代码:

#include <iostream>
#include <cmath>
#include <stdlib.h>
using namespace std;
double f(double x);
double biseccion(double a, double b, double tolerancia, int maxiter);
int main()
{
double a, b, raiz;
double tolerancia=0.00000;
int maxiter=25;
cout << "Input begin of interval: ";
cin >> a;
cout << "Input end of interval: ";
cin >> b;
cout << "\n";
cout << " # de"<<"\n"<<"Iteration"<<"\t"<<" A"<<"\t"<<" B"<<"\t"<<" C"<<"\t"<<" f(c)"<<endl;
raiz=biseccion(a,b,tolerancia,maxiter);
cout << "\n";
cout << "The root is: "<< raiz <<endl;
return 0;
}

double f(double x)
{
return x*x*x-x-2;
}
double biseccion(double a, double b, double tolerancia, int maxiter)
{
double c;
int numiter=1;
do
{
c=(a+b)/2;
if(f(a)*f(c)<0)
{
b=c;
}
else
{
a=c;
}
cout<<" "<<numiter<<"\t"<<"\t"<<a<<"\t"<<b<<"\t"<<c<<"\t"<<f(c)<<endl;
numiter++;
}
while((abs(f(c))>tolerancia)&&(numiter<maxiter));
return c;
}

我希望用户在请求间隔开始之前输入它,而不是在我的代码中写入“x*x*x-x-2”。我该怎么做?

我尝试使用变量来存储“x*x*x-x-2”,但没有任何效果。

最佳答案

您需要解析输入,它可能不像您想象的那么容易,但有一些库可以帮助您。

muparser.sourceforge.net/

code.google.com/p/expressionparser/

partow.net/programming/exprtk/index.html

这里还有一个 c# 中的解决方案,可能对您也有帮助。

Is there a string math evaluator in .NET?

关于c++ - 二分法输入方程,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com