学习C++;。。。编译器意外地在某一点重复代码的执行 我今天开始学习C++,我遇到了一点麻烦。 我正在尝试制作一个简单的程序,将用户的年龄计算在内,要求他们输入一个他们希望增加年龄的数字,然后输出这两个数字的总和。。 这是: #include <iostream> int getAge() { using std::cin; using std::cout; using std::endl; cout << "Enter your age: "; int age; cin >> age; cout << endl; cout << "You are " << age << " years old."; cout << endl; return age; } int getYearsFromNow() { using std::cin; using std::cout; using std::endl; cout << endl; cout << "Enter how many years you want to increase yours age by: "; int yearsFN; cin >> yearsFN; cout << endl << "Increasing your age by " << yearsFN << " years..."; return yearsFN; } int main() { using std::cout; using std::endl; getAge(); getYearsFromNow(); /*int newAge; newAge = getAge() + getYearsFromNow(); cout << endl << "In " << getYearsFromNow() << " years from now, you will be " << newAge; */ return 0; } #包括 int getAge() { 使用std::cin; 使用std::cout; 使用std::endl; 年龄; coutintmain() { 使用std::cout; 使用std::endl; int age=getAge();//只调用一次并分配给变量 int years=getYearsFromNow();//只调用一次并分配给变量 国际新时代; 新年龄=年龄+年数; 正如user@ruakh指出的那样,您两次调用函数getAge()和getYearsFromNow():

学习C++;。。。编译器意外地在某一点重复代码的执行 我今天开始学习C++,我遇到了一点麻烦。 我正在尝试制作一个简单的程序,将用户的年龄计算在内,要求他们输入一个他们希望增加年龄的数字,然后输出这两个数字的总和。。 这是: #include <iostream> int getAge() { using std::cin; using std::cout; using std::endl; cout << "Enter your age: "; int age; cin >> age; cout << endl; cout << "You are " << age << " years old."; cout << endl; return age; } int getYearsFromNow() { using std::cin; using std::cout; using std::endl; cout << endl; cout << "Enter how many years you want to increase yours age by: "; int yearsFN; cin >> yearsFN; cout << endl << "Increasing your age by " << yearsFN << " years..."; return yearsFN; } int main() { using std::cout; using std::endl; getAge(); getYearsFromNow(); /*int newAge; newAge = getAge() + getYearsFromNow(); cout << endl << "In " << getYearsFromNow() << " years from now, you will be " << newAge; */ return 0; } #包括 int getAge() { 使用std::cin; 使用std::cout; 使用std::endl; 年龄; coutintmain() { 使用std::cout; 使用std::endl; int age=getAge();//只调用一次并分配给变量 int years=getYearsFromNow();//只调用一次并分配给变量 国际新时代; 新年龄=年龄+年数; 正如user@ruakh指出的那样,您两次调用函数getAge()和getYearsFromNow():,c++,c++11,stl,C++,C++11,Stl,一旦来到这里: getAge(); getYearsFromNow(); 在这里: newAge = getAge() + getYearsFromNow(); 您要做的是保存第一次从函数返回的值,否则这些值实际上会丢失。您不需要再次调用函数 因此,请将代码更改为以下内容: int age = getAge(); int yearsFromNow = getYearsFromNow(); int newAge = age + yearsFromNow; cout << endl

一旦来到这里:

getAge();
getYearsFromNow();
在这里:

newAge = getAge() + getYearsFromNow();
您要做的是保存第一次从函数返回的值,否则这些值实际上会丢失。您不需要再次调用函数

因此,请将代码更改为以下内容:

int age = getAge();
int yearsFromNow = getYearsFromNow();
int newAge = age + yearsFromNow;
cout << endl << "In " << yearsFromNow << " years from now, you will be " << newAge;
int age=getAge();
int yearsFromNow=getYearsFromNow();
int newAge=年龄+从现在起的年份;

你知道吗,每次调用
getAge()
getYearsFromNow()
都会重新提示用户?(如果你是这么想的,程序不会“记住”并重用以前调用的结果。)那么,我可以通过将两个调用分别分配给main中的一个变量来解决这个问题吗?@ruakhtried,这很有效。@ruakhn这不是一个非常有用的答案。你应该解释一下你的代码是如何不同的。@Carcigenicate:我确实同意。我已经做到了这一点,并注意到问题已经根据OP中的注释得到了解决。
int age = getAge();
int yearsFromNow = getYearsFromNow();
int newAge = age + yearsFromNow;
cout << endl << "In " << yearsFromNow << " years from now, you will be " << newAge;