我是新手的功能,我真的想了解它们是如何工作的,我的老师给了我们一个问题,我们将一个数字传递给1-12范围内的函数,然后函数就是做那个数字的时间故事所以我要求用户输入一个数字,如果数字小于1且大于12退出,否则将数字传递给函数然后我用for循环为我做乘法(据我所知)但似乎什么都没发生?不要怀疑我做的事情真是愚蠢,任何帮助都非常感激。
#include <iostream>
using namespace std;
int TimesTables (int num);
int main(int argc, const char * argv[]) {
int number;
cout << "enter a number to multiply by, with a range of 1-12: ";
cin >> number;
if (number < 1 && number > 12)
return EXIT_FAILURE;
else {
int tables = TimesTables(number);
cout << tables;
}
return 0;
}
int TimesTables (int num) {
for ( int i = 0; num <=12; i ++)
num = num * i;
return num;
}
答案 0 :(得分:4)
从0开始运行i
将num
设置为0,因此在此之后进行任何乘法。
你的循环也很可疑。你为什么要检查num <= 12
而不是i <= 12
?
您的循环不应采用
形式for ( int i = 1; i <=12; i ++){
// Print num * i
cout << num * i;
}
// There's no need to return anything back to the caller
答案 1 :(得分:1)
for ( int i = 0; num <=12; i ++)
num = num * i;
此处i
从0开始,因此您之后执行的任何乘法都不会影响结果(num
)。此外,你想从1到12,所以你应该从0开始,以12 - 1结束,或者从1开始,到12结束。
所以改变这个:
for ( int i = 0; num <=12; i ++)
到此:
for ( int i = 1; i <=12; i ++)
因为您希望在i
达到12时停止,而不是num
,i
是for-loop的计数器!