【发布时间】:2018-04-02 11:24:14
【问题描述】:
因为我是 C++ 的菜鸟,Udacity Quiz 叙述:
以下程序产生错误的输出。要修复程序,您需要更改至少两种变量类型:answer 和一个除数。
#include <iostream>
int main(void)
{
int numerator = 4; // no need to change type
float denominator = 5.0; // changed to float
float answer = 0.0; // changed to float
answer = numerator / denominator;
std::cout<<"answer = "<<answer; // answer = 0.8
return 0;
}
问题:这里的类型转换是如何暗示的以及为什么要在相等的两边改变变量类型。
为什么不只改变answer。按照指示,我尝试仅将float 设置为answer 和denominator。现在它可以工作了,但我想学习 C++ 中的隐式类型转换。
PS:代码是 Udacity 课堂的测验
【问题讨论】:
-
这里的正确答案是什么?这将输出
answer = 0.8。不知道你想要什么,对我来说听起来不错.. -
那么这里的问题是什么?为什么整数除法没有做他们想要发生的事情?想一想。
-
你在引用什么?听起来像是一个比你在这里告诉读者更了解你努力实现的目标的人的推荐。
-
显示的代码是应用推荐的结果还是需要更改?如果代码需要修复,现在可能已经坏了;请解释它是如何损坏的。
-
问题很清楚,为什么我需要改变双方的变量类型,即答案变量和分子、分母变量。为什么不仅改变答案变量类型有效。
标签: c++ c++11 type-conversion typecasting-operator