我正在尝试实现用户定义的函数,该函数测试数字是否为整数:
#include <iostream>
#include <typeinfo>
using namespace std;
bool integer(float k){
if (k==20000) return false;;
if (k==(-20000)) return false;
if (k==0) return true;
if (k<0) return integer(k+1);
else if(k>0) return integer (k-1);
return false;
}
int main(){
float s=23.34;
float s1=45;
cout<<boolalpha;
cout<<integer(s)<<endl;
cout<<integer(s1)<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以我的想法是,如果一个数是一个整数,如果它是负数或正数无关紧要,如果我们减少或增加它,我们必须得到零,但问题是,我们怎样才能创建增减的下界?
我是 C++ 的新手。我正在试验cin.
我想知道cin如果用户提供不正确的数据类型,将如何进行输入。所以我检查了 Stack Overflow 并得到了这个答案:
当你读取一个整数并给它输入 1.5 时,它看到的是整数 1,它在句点处停止,因为它不是整数的一部分。“.5”仍在输入中。这就是你只得到整数部分的原因,这也是它似乎没有第二次等待输入的原因。
为了解决这个问题,您可以读取浮点数而不是整数,以便读取整个值,或者您可以检查读取整数后行中是否还有其他内容。
所以我尝试了它。
#include <iostream>
int main()
{
std::cout << "Enter 4 numbers: " <<
std::endl;
int v1 = 0, v3 = 0;
float v2 = 0, v4 = 0;
std::cin >> v1 >> v2 >> v3 >> v4;
std::cout << "-> " << v1 << " " << v2 << " "
<< v3 << " " << v4 << std::endl;
return 0; …Run Code Online (Sandbox Code Playgroud)