初学者C 教科书不同意我在编译数学方程式时获得的实际输出
beginner c++ textbook disagrees with actual output I get when compiling math equations
嗨,所以以下问题是我本周的HW问题,我根据我在教科书中发现的材料回答了它们D将它们通过编译器运行,看看我的答案是否正确。但是,当我在C 编译器中运行它们时,我无法获得POW,CEIL或地板功能以返回浮点,它们只会返回整数不同意我的书所说的应该返回的内容?我展示了我对HW的答案应根据这本书的内容,在括号中是我编译时会发生什么。
问题;我的书 说 回答 应该;(编译器显示的内容);
a)POW(2,3);8.0;(我的书说POW只返回浮动
要点,但这只能返回整数,
即使我将功能更改为 POW(2.0,3.0)我只得到8);
b)Fabs(-3.5);3.5;(这是有效的,它返回3.5);
c)SQRT(POW(3,2));2.8;(返回2.82843,我应该如何
知道要弹出多少个小数?);
d)7/abs(-2);3;(这是一个可行的);
e)ceil(5.8);6.0;(仅返回整数6);
f)地板(5.8);5.0;(仅返回整数5);
根据您所描述的内容,一切都按预期工作。您尚未包含您编写的代码,因此这有点猜测 - 但是您要求计算机打印出某些数字的值。您正在获得8
,但您期望8.0
。您和计算机都没有错。您只需要要求计算机打印小数点值,即使您要打印的数字正是整数。
问题;我的书说答案应该是什么;(编译器显示的内容);
编译器没有显示有关类型的任何内容。(嗯,它可以,但是您必须深入。
大概您正在基于您的印刷内容。例如,考虑此C 11程序:
#include <cmath>
#include <iostream>
int main () {
auto pow_2_3 = std::pow(2,3);
// int eight {pow_2_3}; // Compilation error.
std::cout << pow_2_3 << 'n';
}
此打印" 8"(不是8.0)。这是否意味着类型是整数?当然不是。" 8"只是意味着默认格式正在剥离后零,也是小数点。
如果您输入注释输出线路,则会遇到汇编错误,因为双重无法缩小到整数。即使是确切的,也不是在编译时已知的。如标准所指定的那样,pow_2_3
的类型是双重的。如果std::pow(2,3)
实际上是与编译器的计算机上的整数,那么您有一个不合格的编译器。
std::ceil
和std::floor
也是如此。他们返回双打,而不是整数。
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 如何将我的输出用于另一个方程式
- 初学者C 教科书不同意我在编译数学方程式时获得的实际输出