使用C ++中的函数进行乘法

时间:2017-01-20 15:43:37

标签: c++ function loops for-loop multiplication

我是新手的功能,我真的想了解它们是如何工作的,我的老师给了我们一个问题,我们将一个数字传递给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;
}

2 个答案:

答案 0 :(得分:4)

从0开始运行inum设置为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时停止,而不是numi的计数器!