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

时间:2019-01-22 17:58:51

标签: c++ windows visual-studio

我在理解如何正确地将用户输入值传递给函数,从该值中减去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;
}

1 个答案:

答案 0 :(得分:2)

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

尝试类似

int getBottles(int num) {
    return num-1;
}

这里您正在使用

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

运行未初始化的位置,并且您从0开始递减i。

尝试类似

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

如果要在打印之前停止它,则墙上没有啤酒。