因此,基本上,我正在尝试开发一个简单的应用程序,该应用程序使用一个函数来确定用户输入的2个数字是否为第一个数字的倍数。

#include<iostream>
using namespace std;
int multiple( int n1, int n2){
    if(n1%n2 ==0)return 1;
    else return 0;
}

int main(){
    int num1, num2;
    cout<<"Enter 2 numbers (-1 to exit): ";
    cin>>num1>>num2;
    while (num1 !=-1 && num2 != -1){
        if (multiple (num1, num2)==1)cout<<num2<<" is a multiple of "<<num1<<endl<<endl;
        else cout<<num2<<" is not a multiple of "<<num1<<endl<<endl;
        cout<<"Enter 2 numbers (-1 to exit): ";
        cin>>num1>>num2;
    }
    return 0;
}

现在,当我使用普通整数尝试它时,它可以正常工作,但是为什么当我输入第二个数字作为十进制数时却进入无限循环呢?具体来说,这是它不断给出的声明:



调试器显示出于某些奇怪的原因num1变为0。我知道我可以使用if语句来克服这个问题,但是出于我自己的好奇心,任何人都可以解释为什么会这样吗?我可以为您提供您需要的其他任何东西,并且如果有任何意义,我正在使用xCode

最佳答案

您将两个变量都放在一个cin上。

它看起来应该像这样:
cin >> num1;
cin >> num2;

关于c++ - 无限循环仅十进制数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22998263/

10-09 23:19