将变量传递给函数\使用该变量返回一个新值\重复直到值达到 0

Posted

技术标签:

【中文标题】将变量传递给函数\\使用该变量返回一个新值\\重复直到值达到 0【英文标题】:Pass a variable to a function\Return a new value with that variable\Repeat until value reaches 0将变量传递给函数\使用该变量返回一个新值\重复直到值达到 0 【发布时间】:2019-01-22 17:58:50 【问题描述】:

我在理解如何正确地将用户输入值传递给函数、从该值中减去 1、返回新值以及将新值放入循环中时遇到问题。所以每次循环执行时,它都会将更新后的值发送给函数,最终到达/停止在 0。这就是我目前所拥有的。

#include "pch.h"
#include <iostream>

using namespace std;

int getBottles(int num);

int main()

int num;
int run;
int numBottles;

cout << "Enter the amount of bottle to start with: ";
cin >> num;


if ((num < 0) || (num > 101)) 
    cout << "Error! Number isnt valid!\n";
    return main();

else

    for (size_t i = 0; i <= run; --i)
    
        numBottles = getBottles(num);
        cout << "Number of beers on the wall " << numBottles;
    


return 0;



int getBottles(int num) 

do 
    num = num - 1;

 while (num > 0);
return num;

【问题讨论】:

首先选择一种语言。 我认为,您需要使用此处描述的 Rubber Duck 调试技术:rubberduckdebugging.com 来修复您的代码。 【参考方案1】:

int getBottles 将在 num > 0 时从 num 中减去 1,而不是一次。

试试类似的东西

int getBottles(int num) 
    return num-1;

你在这里使用

for (size_t i = 0; i <= run; --i)

其中run未初始化,你从0开始递减i。

试试类似的东西

while (num) 
    cout << "Number of beers on the wall " << num;
    num = getBottles(num);

如果您希望它在打印出来之前停止,那么墙上就没有啤酒了。

【讨论】:

numBottles = getBottles(num); num 将保持不变。无限循环。摆脱 num 以支持 numBottles 或将 numBottles 替换为 num。您的选择。 好收获!我没注意到。

以上是关于将变量传递给函数\使用该变量返回一个新值\重复直到值达到 0的主要内容,如果未能解决你的问题,请参考以下文章

将js变量传递给django视图[重复]

将变量名称传递给另一个函数中的 dplyr 函数会返回找不到对象错误

气流 - 如何将 xcom 变量传递给 Python 函数

函数可以返回结构体的原因

如何将两个变量传递给 python 函数并返回两个变量? [复制]

传递给 onclick 函数的 blazor 变量参数 [重复]