Skip to main content
 首页 » 编程设计

c++之程序崩溃而没有错误消息

2024年11月01日8shangdawei

我正在使用Qt Creator(社区)来学习编码。
我有一个分配来计算函数的根,然后尝试使用在Qt Widgets项目中找到here的代码。
当我尝试运行程序时,Qt没有检测到任何错误。
但是,每当我尝试使用on_pushButton_clicked()显示结果时,程序就会崩溃。
我的讲师怀疑某个地方应该存在开环,但我看不到。
任何帮助将不胜感激。
代码如下:

double function1(double q) 
{ 
double ab = ((q*q*q)+(9*q*q)-(15*q)+98)*(sin(q)); 
return ab; 
} 
 
void MainWindow::on_pushButton_clicked() 
{ 
    ui->label->setText(tr("%1").arg(func1())); 
} 
 
double MainWindow::func1() 
{     
    std::setprecision(4); 
    double precision = 0.001; 
    double a = -10; 
    double b = -9; 
    double product = function1(a)*function1(b); 
    double absolute = fabs(a-b); 
    double e = 0; 
    if (product>0) 
    { 
        ++a; 
        ++b; 
    } 
    else 
    { 
        while (absolute >= precision) 
        { 
            e = (a + b) / 2; 
            double fa = function1(a); 
            double fe = function1(e); 
            if (fe == 0) 
            { 
                return e; 
                break; 
            } 
            if (fa*fe>0) 
            { 
                a = e; 
            } 
            else if (fa*fe<0) 
            { 
                b = e; 
            } 
        } 
    } 
    return e; 
} 

请您参考如下方法:

每次出现此循环时,尝试打印绝对值和精度值:

while (absolute >= precision)




那应该帮助您弄清楚。