代码如下:
#include<iostream>
using namespace std;
class Test {
private:
int i;
double j = 0;
double arr;
public:
double ArrofK(int n,int k) {
double sum = 0;
for (i = 1; i <= n; i++)
{
if (i % k == 0)
{
sum += i;
j++;
}
}
arr = sum / j * 1.0;
return arr;
}
double ArrofNK(int n,int k) {
double sum = 0;
for (i = 1; i <= n; i++)
{
if (i % k != 0)
{
sum += i;
j++;
}
}
arr = sum / j * 1.0;
return arr;
}
};
int main()
{
int n, k;
cin >> n >> k;
Test t;
cout << t.ArrofK(n, k) << " " << t.ArrofNK(n, k) << endl;
}
输入
100 16
运行结果为
3.36 50.1459
我知道这个代码出错了,但奇怪的是当我把
cout << t.ArrofK(n, k) << " " << t.ArrofNK(n, k) << endl;
改为
cout << t.ArrofNK(n, k) << " " << t.ArrofK(n, k) << endl;
后
运行结果变成了
4.714 56
都是后面对了,前面错了,我个人认为是私有成员j出错了,但是不应该是前面对,后面错吗?求解。