C++ QT没有错误或警告,但它没有';我什么也不输出
我的代码应该找到2个数字(a和b)之间的所有友好数字。 我已经尝试过其他编译器,它工作正常,但我需要GUI。 代码如下: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
#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的结果: