#include <iostream>
#include <string>
using namespace std;
int main() {
double age;
double months;
string name;
months = age*12.0;
cout << "Enter your name and age: ";
cin >> name >> age;
cout << "Hello " << name << " age " << age << " (" << months << " months)\n";
return(0);
}
程序要求输入姓名和年龄,并应将姓名和年龄放在句子中,并在括号中以月为单位显示年龄。 输出给出类似的东西: Hello Bob age 20 (1.82561e-313 months),但应该是 Hello Bob age 20 (240 months)。我没有使用 int 是因为我希望能够为年龄输入非 int 值。 我尝试了 12 而不是 12.0,并尝试声明一个变量并执行 months = age*m where m = 12.0 但结果是一样的。顺便说一句,无论变量 age 是什么,随机值都大致相同。为什么会这样?另外,这是链接时错误还是运行时错误?
最佳答案
您在初始化之前使用 age
进行乘法运算。您希望它能给您带来什么值(value)?
更改您的代码以先获取年龄,然后进行乘法:
cout << "Enter your name and age: ";
cin >> name >> age;
months = age*12.0;
cout << "Hello " << name << " age " << age << " (" << months << " months)\n";
关于c++ - 将 double 类型值相乘会在输出中给出随机/垃圾答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146772/