我需要编写一个将获取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 “这是唯一的结果,我无法生成任何函数输出”
答案 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;
}