gpt4 book ai didi

c++ - 函数中的计算似乎被忽略,总是返回相同的数字

转载 作者:太空宇宙 更新时间:2023-11-04 15:27:49 29 4
gpt4 key购买 nike

growthRate 函数:(截至 2010 年 12 月 11 日晚上 8 点)

    #include "header.h"

float growthRate (float birthRate, float deathRate)
{
float growthrt;
growthrt = (birthRate) - (deathRate);
cout << growthrt << endl;
return growthrt;

}

estimatedPopulation 函数:(截至 2010 年 12 月 11 日晚上 8 点)

#include "header.h"

float estimatedPopulation (float currentPopulation, float years, float birthRate, float deathRate)
{
int x;
float newPopulation;
for (x = 0; x < years; x++)
{
newPopulation = currentPopulation + currentPopulation * (growthRate (birthRate, deathRate) / 100);
currentPopulation = newPopulation;
cout << newPopulation << endl;
}

return newPopulation;
}

输出函数:(截至 2010 年 12 月 11 日晚上 8 点)

#include "header.h"

void output (float currentPopulation, float years)

{
cout << estimatedPopulation (currentPopulation, years) << endl;
}

主要功能:(截至 2010 年 12 月 11 日晚上 8 点)

#include "header.h"

int main ()
{

float currentPopulation, birthRate, deathRate, years;

char response;


do //main loop
{
input (currentPopulation, birthRate, deathRate, years);
growthRate (birthRate, deathRate);
estimatedPopulation (currentPopulation, years, birthRate, deathRate);
output (currentPopulation, years, birthRate, deathRate);
cout << "\n Would you like another population estimation? (y,n) ";
cin >> response;
}
while (response == 'Y' || response == 'y');

myLabel ("5-19", "12/09/2010");

system ("Pause");

return 0;

}

编辑(2010 年 12 月 11 日晚上 8 点)

解决了!参数,参数,参数!感谢大家的投入。

最佳答案

你有两个主要问题。

第一个问题是 estimatedPopulation 的返回值是一个 int。因此,当计算表达式的结果时,它会转换为 int,这会将其向下舍入。除非 currentPopulation * growthrt/100 的结果大于 1,否则您永远看不到变化。我认为你的最后一个例子也有同样的问题。

另一个问题是您一直将相同的值分配给 newPopulation 变量。您可能想在循环内调整 currentPopulation

@Matt:看起来您没有使用函数的返回值,例如:

something = estimatedPopulation(currentPopulation, years);

(顺便一提——那个函数应该有 4 个参数???)

请注意,当您传入一个“int”时,函数内的变量是函数的局部变量——修改它不会影响函数外的同名变量。看起来这很像您期望发生的事情。如果您确实想修改传入的值,您可以尝试类似的操作:

void estimatedPopulation(int &newPopulation....) {

这通过引用传递变量,这样您就可以在函数中实际修改它。

关于c++ - 函数中的计算似乎被忽略,总是返回相同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414814/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com