【发布时间】:2021-02-02 14:41:32
【问题描述】:
所以我有一个任务,我是编程新手。
我的教授想要一个输出,当我输入一个数字时,程序将得到该数字的平方根,然后如果答案是整数,它将 + 1,如果它是十进制数,它将为-1。但问题是,整数中的 if 正在加 1,但在十进制中,它仍然加 1。(抱歉英语不好)
例如我输入了25,25的平方根是5,所以在条件下,我应该加1来回答,所以它是6
如果我输入24,它的平方根是4.898979486,所以它应该是3.898979486,因为它是小数,程序应该是-1。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double num, result;
cout << "Enter a number: \n";
cin >> num;
result = sqrt(num);
if (num == 0) {
cout << "\nThe number is in decimal number: " << --result;
}
else {
cout << "\nThe number is in whole number: " << ++result;
}
return 0;
}
【问题讨论】:
-
if (num==0)如何检查num是一个整数? -
另外,听起来您需要一位不同的教授,他实际上不仅了解 C++,还了解计算机科学,并且了解为什么浮点数学会被破坏。
-
猜猜这可能会有所帮助:stackoverflow.com/questions/1521607/…
-
您好,欢迎您。除了上述解决方案建议之外,您能否使用缩进使您的代码更具可读性。非常感谢,祝你好运。
-
不要比较浮点数是否相等!浮点变量可能无法完全符合您的预期,具体取决于架构。
标签: c++ if-statement