我在理解如何正确地将用户输入值传递给函数,从该值中减去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;
}
答案 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);
}
如果要在打印之前停止它,则墙上没有啤酒。