C++ C++;-寻找倍数&;消除常见问题

C++ C++;-寻找倍数&;消除常见问题,c++,C++,我编写了一个程序,要求用户输入两个数字和一个阈值。程序应找到低于特定阈值的两个数字的所有倍数。我已经写了一个for循环,每次都会遍历这些数字,并检查是否有任何倍数也是其他输入数字的倍数。如果是,它会打印出来。但奇怪的是,当我运行这个程序时,它没有打印任何东西!真令人沮丧 #include <iostream> using namespace std; int main() { int mult1, mult2, threshold; cout << "E

我编写了一个程序,要求用户输入两个数字和一个阈值。程序应找到低于特定阈值的两个数字的所有倍数。我已经写了一个for循环,每次都会遍历这些数字,并检查是否有任何倍数也是其他输入数字的倍数。如果是,它会打印出来。但奇怪的是,当我运行这个程序时,它没有打印任何东西!真令人沮丧

#include <iostream>
using namespace std;

int main()
{
    int mult1, mult2, threshold;
    cout << "Enter first multiple: ";
    cin >> mult1;
    cout << "Enter second multiple: ";
    cin >> mult2;
    cout << "Enter the threshold: ";
    cin >> threshold;
    for (int i = 1; i < threshold; i++)
    {
        int check1 = mult1*i;
        int check2 = mult2*i;
        if (check1/check2 == 1)
            cout << check1 << endl;
    }
    char response;
    cin >> response;
    return 0;
}
#包括
使用名称空间std;
int main()
{
int mult1,mult2,阈值;
cout>mult1;
cout>mult2;
cout>阈值;
对于(int i=1;i
因为这看起来像是家庭作业,所以我不会给你完整的答案,只是一个提示:

if(check1/check2==1)
表示
check1
位于
[check2,2*check2)
中的某个位置,这完全不是您想要的。您可能需要查看
%
运算符


另外,如果您想打印小于
threshold
,那么
check1
应该小于
threshold
,这意味着
i
应该上升到
threshold/mult1
,因为这看起来像是家庭作业,我不会给您完整的答案,只是一个提示:

if(check1/check2==1)
表示
check1
位于
[check2,2*check2)
中的某个位置,这完全不是您想要的。您可能需要查看
%
运算符


此外,如果要打印小于
threshold
的值,则
check1
应小于
threshold
,这意味着
i
应上升到
threshold/mult1

在显示的每行之后添加
endl

默认情况下,cout有一个缓存,它不会立即显示。
endl
刷新输出并添加换行符

cout << "Enter first multiple: " << endl;

cout在显示的每行之后添加
endl

默认情况下,cout有一个缓存,它不会立即显示。
endl
刷新输出并添加换行符

cout << "Enter first multiple: " << endl;

cout不幸的是,这个问题没有充分说明问题所在

程序应找到低于特定阈值的两个数字的所有倍数

是否要查找所有输入数或两个输入数的倍数?如果两者都是,请注意结果将只是输入数的所有倍数

<>一个有用的提示:C++可以告诉你一个数是另一个数的倍数。< /P>
if ( a % b == 0 ) {
    // a is a multiple of b
}

不幸的是,这个问题没有充分说明问题所在

程序应找到低于特定阈值的两个数字的所有倍数

是否要查找所有输入数或两个输入数的倍数?如果两者都是,请注意结果将只是输入数的所有倍数

<>一个有用的提示:C++可以告诉你一个数是另一个数的倍数。< /P>
if ( a % b == 0 ) {
    // a is a multiple of b
}

投票关闭:让陌生人通过检查来发现代码中的错误是无效的。你应该识别(或至少隔离)通过使用调试器或打印语句来解决问题,然后返回一个更具体的问题。您的逻辑似乎不正确。两个不同的数字乘以相同的数字怎么会得到相同的结果?例如:5*1,7*1产生相同的结果?正如Mahesh所说,该代码似乎不正确。如果(i%mult1==0和&i%mult2==0)
了解
i
是否是两个数字的倍数?投票结束:让陌生人通过检查发现代码中的错误是无效的。你应该识别(或至少隔离)通过使用调试器或打印语句来解决问题,然后返回一个更具体的问题。您的逻辑似乎不正确。两个不同的数字乘以相同的数字怎么会得到相同的结果?例如:5*1,7*1产生相同的结果?正如Mahesh所说,该代码似乎不正确。如果(i%mult1==0&&i%mult2==0)
了解
i
是否是两个数字的倍数。听说过整数除法吗?
check1/check2==1
表示
check1>=check2&&check1@ipc是的,对不起,我本想告诉他那不是他想要的,忘了类型。听说过整数除法吗?
check1/check2==1
means
check1>=check2&&check1@ipc是的,对不起,我本想告诉他那不是他想要的,忘了类型。事实上,
cin
有一个鲜为人知的功能:读取
cin
自动刷新
cout
。所以这是完全不真实的。你实际上可以
任何
ostream
绑定到任何
ios
:@potatoswater:和anywa在程序停止之前,所有的缓冲区都将被清空。
endl
在大多数情况下几乎是无用的。实际上,
cin
有一个鲜为人知的特性:读取
cin
会自动刷新
cout
。所以这完全是不真实的。实际上,你可以
any
ostream
绑定到任何
ios
:@Potatoswatter:无论如何,在程序停止之前,所有的缓冲区都将被清空。
endl
在大多数情况下几乎是无用的。