仅用于十进制数的无限循环
infinite loop for decimal number only
因此,基本上我正在尝试开发一个简单的应用程序,该应用程序使用一个函数来确定用户输入的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;
}
现在,当我尝试使用普通整数时,它工作得很好,但为什么当我输入第二个数字作为小数时,它会进入一个无限循环?具体来说,这是它不断给出的声明:
"输入2个数字(-1退出):1是0的倍数"
调试器显示,由于某种奇怪的原因,num1
变成了0
。我知道我可以通过使用if语句来克服这一点,但出于我自己的好奇心,有人能解释为什么会发生这种情况吗?我可以为您提供任何其他需要的东西,如果有任何相关性,我将使用xCode
。
将两个变量放在一个cin
上。
它应该是这样的:cin>>num1;cin>>num2;
如果"十进制数"是指非整数,则不能将其放入int
变量中。
相关文章:
- visual在c++中将十进制数转换为二进制数
- 使用for循环检查数组中的重复项
- 过载'operator new'如何导致无限循环?
- C++从二进制转换为十进制数
- C++正则表达式无限循环
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 遍历链表时的无限循环
- 将分数转换为十进制数并对其进行排序
- 我的c ++数组值不想改变,它输出无限循环
- 比较二维数组中的数字时的无限循环
- 在给定长度无限循环的情况下,在Collatz猜想中查找起始数的代码
- 使用 for 循环更改二进制数>十进制数
- 在数组上使用时最大堆无限循环,但不用于向量
- C++用户输入到字符串数组的无限循环
- 这是一个具有基于数组的列表函数的数据结构项目,我似乎无法摆脱这个无限循环。
- 数独求解矩阵,而语句给出了一个无限循环
- 我认为做而正在进入无限循环.或数组.(运行时错误)
- 最小堆通过二叉树的数组表示;MoveDown函数无限循环
- 仅用于十进制数的无限循环