#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);
}
该计划要求姓名和年龄,并且应该将姓名和年龄放在括号中的月龄数月的句子中。 输出给出了类似于: 你好鲍勃20岁(1.82561e-313个月),但应该是你好鲍勃20岁(240个月)。我没有使用int因为我希望能够为年龄输入非int值。 我尝试了12而不是12.0并尝试声明一个变量并做数月=年龄* m,其中m = 12.0但结果是相同的。顺便说一下,无论变量年龄是多少,随机值都大致相同。为什么会这样?此外,这是链接时错误还是运行时错误?
答案 0 :(得分:4)
在初始化之前,您正在使用age
进行乘法运算。你期望它给你什么价值?
将代码更改为先获取年龄,然后进行乘法运算:
cout << "Enter your name and age: ";
cin >> name >> age;
months = age*12.0;
cout << "Hello " << name << " age " << age << " (" << months << " months)\n";
答案 1 :(得分:2)
将months
的计算移至输入点年龄后(age
在原始代码中未初始化):
cout << "Enter your name and age: ";
cin >> name >> age;
months = age*12.0;
cout << "Hello " << name << " age " << age << " (" << months << " months)\n";