gpt4 book ai didi

c++ - 为什么我的公式不计算 WHILE 循环中的值?

转载 作者:行者123 更新时间:2023-11-27 23:42:14 26 4
gpt4 key购买 nike

我正在尝试为我的控制台代码获取中间计算结果。
任务如下:

仓库里共有A吨蔬菜。
在第 1 个月的月底,我们将出售 B 吨,在第 2 个月的月底 - (1.1*B),在第 M 个月的月底,我们将出售(1+(M-1)/10)*B 吨。我们有10个月的限制(超过10个月不计算)。
初始 A 和 B 值由用户键入。

我的代码:

float A,B; 
int M = 1;
... /here user types stuff in/...

while (M<10)
{
B = (1 + (M - 1) / 10) * B; // goddamn formula that can't execute normally
cout << "It's " << M << " month, we took " << B << " tonnes of vegs." << endl;
M++;
}

我输入的内容:
A = 500; B = 1

我期望应该发生的事情:
现在是 1 个月,我们吃了 1 吨蔬菜。
静默计算:B= (1+(1-1)/10)*1 = 1; M=1+1=2
现在是 2 个月,我们吃了 1.1 吨蔬菜。
静默计算:B= (1+(2-1)/10)*1 = 1.1; M= 2+1 = 3
三个月了,我们吃了 1.32 吨蔬菜。
静默计算:B= (1+(3-1)/10)*1.1 = 1.32; M= 3+1 = 4
以此类推,直到我们到达第 10 个月。

我看到的是:
1个月了,我们吃了1吨蔬菜
2个月了,我们吃了1吨蔬菜
3个月了,我们吃了1吨蔬菜
依此类推,所以月份在计算,但任务中的公式没有。

无论我放置哪个 BI 值,都会始终显示。

我做错了什么?

最佳答案

M 是一个 int。所以,(1 + (M - 1)/10) 也是一个 int。该除法是整数除法。你永远不会从中得到 1.1。每次都会被截断为 1。

在那里使用 /10.0 强制它全部为 float 。

关于c++ - 为什么我的公式不计算 WHILE 循环中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53697208/

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