Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QT没有错误或警告,但它没有';我什么也不输出_C++_Qt - Fatal编程技术网

C++ QT没有错误或警告,但它没有';我什么也不输出

C++ QT没有错误或警告,但它没有';我什么也不输出,c++,qt,C++,Qt,我的代码应该找到2个数字(a和b)之间的所有友好数字。 我已经尝试过其他编译器,它工作正常,但我需要GUI。 代码如下: #include "mainwindow.h" #include "./ui_mainwindow.h" #include <QTextStream> using namespace std; MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent

我的代码应该找到2个数字(a和b)之间的所有友好数字。 我已经尝试过其他编译器,它工作正常,但我需要GUI。 代码如下:

#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <QTextStream>

using namespace std;

MainWindow::MainWindow(QWidget* parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::on_pushButton_clicked()
{
    int a, b, c, l;
    string data_1, temp;
    QString data;
    QString A = ui->frst->text();
    QString L = ui->lst->text();
    a = A.toInt();
    l = L.toInt();
    for (int k = a; k <= l; k++) {
        int s1 = 0;
        for (int i = 1; i <= a / 2; i++) {
            if (a % i == 0)
                s1 = s1 + i;
        }
        b = s1;
        int s2 = 0;
        for (int i = 1; i <= b / 2; i++) {
            if (b % i == 0)
                s2 = s2 + i;
        }
        c = s2;
        if (a == c && c != b && a <= l && b <= l) {
            temp = to_string(b) + " and " + to_string(c) + "... \r\n";
            data_1 += temp;
        }
    }
    data = QString::fromStdString(data_1);
    ui->OutPut->setText(data);
}
#包括“mainwindow.h”
#包括“/ui\u mainwindow.h”
#包括
使用名称空间std;
主窗口::主窗口(QWidget*父窗口)
:QMainWindow(父级)
,ui(新ui::Main窗口)
{
用户界面->设置用户界面(此);
}
MainWindow::~MainWindow()
{
删除用户界面;
}
void主窗口::在按钮上单击()
{
INTA、b、c、l;
字符串数据_1,温度;
QString数据;
QString A=ui->frst->text();
QString L=ui->lst->text();
a=a.toInt();
l=l.toInt();

对于(int k=a;k您的代码可以工作,但是可能您没有提供正确的输入,我已经在Qt中尝试了您的代码,它可以正常工作,尝试输入220和284,这将找到该范围内的友好数字

以下是我得到的输出:


您是否使用Qt Creator或手动创建了项目?什么是“但它不输出任何东西”的意思?您是否验证了“a”、“l”和“data_1”中的内容?您是否验证了它是否输入了
(a==c&&c!=b&&a@Filip使用Qt CreatorI已经尝试过其他编译器,并且成功了。我认为您应该显示成功的代码。我不认为这里的问题是Qt代码。我认为您的算法存在缺陷。如果之前它成功了,您在转换为使用Qt时会将该部分搞乱。是的,但是如果我输入1和300,则没有数字,但是220和284在这个范围内是的,但我认为你不完全理解你的代码,你的代码只会检查两个输入的数字是否友好,而不会在这个范围内找到每两个友好的数字。我同意,问题一定发生在有效的代码和问题中显示的代码之间。使用只有算法不返回1和300的结果: