显示输出和输入的函数问题

时间:2019-04-09 12:25:57

标签: c++

我需要编写一个将获取2个整数的程序。然后程序将显示 以下: 一种。在两个输入的数字之间被4和6整除的所有整数的总和。 b。输入的两个数字之间的所有整数的平均值都可以被3和7整除。

我尝试将代码写在下面:

#include <iostream>
using namespace std;

int Sum46(int a, int b)
{
    int sum = 0;
    for (int i = a; i <= b; i++) {
        if (i % 4 == 0 && i % 6 == 0) {
            sum = sum + i;
        }
    }
    return sum;
}

int Sum37(int j, int k)
{
    int sum1 = 0;
    for (int i = j; i <= k; i++) {
        if (i % 3 == 0 && i % 7 == 0) {

            sum1 = sum1 + i;
        }
    }
    return sum1;
}

int Count(int f, int g)
{
    int inputCount = 0;
    for (int i = f; i < g; i++) {
        if (i % 3 == 0 && i % 7 == 0) {
            inputCount++;
        }
    }
    return inputCount;
}

int Ave(int t, int u)
{
    int total = 0;
    total = t / u;
    return total;
}

void display(int o, int l)
{
    cout << "The sum of all integers that are both divisible by 4 and 6 between two numbers is " << o << endl;
    cout << "The sum of all integers that are both divisible by 3 and 7 between two numbers is " << l << endl;
}

int main()
{
    int num1, num2;
    int probA, probB, comp, bilang;
    cout << "Input first number : ";
    cin >> num1;
    cout << "Input second number : ";
    cin >> num2;

    probA = Sum46(num1, num2);
    comp = Sum37(num1, num2);
    bilang = Count(num1, num2);
    probB = Ave(comp, bilang);
    display(probA, probB);

    return 0;
}

我的预期结果应该是

输入第一个数字:4 输入第二个数字:12

在两个数字之间可被4和6整除的所有整数的总和为12 在两个数字之间可被3和7整除的所有整数的总和为0 “由于输入的数字中只有12个数字既可以被4和6整除,又不能被3和7整除。”

但是实际结果是 输入第一个数字:4 输入第二个数字:12 “这是唯一的结果,我无法生成任何函数输出”

1 个答案:

答案 0 :(得分:0)

您必须检查u为0的情况。

更改此:

int Ave(int t, int u)
{
    int total = 0;
    total = t / u;
    return total;
}

对此:

int Ave(int t, int u)
{
    if( u == 0 )
        return -1;
    return t/u;
}