检查一个数字是否完全的程序的随机输出



我正在尝试制作一个程序,检查数组内的数字是否为完全数。这个程序还算管用。它正确地检查并输出数组中的数字是否完美。但有一个问题我完全不明白。程序检查并输出看似随机的随机数。

完整代码:

#include <iostream>
using namespace std;
int main()
{
int numbers[6] = {45, 6, 789, 28, 43, 496};
for(int i = 0; i < sizeof(numbers); i++){
int sum = 0;
for(int j = 1; j < numbers[i]; j++){
if(numbers[i] % j == 0)
sum += j;
}
if(sum == numbers[i])
cout << numbers[i] << " is a perfect number" << endl;
else
cout << numbers[i] << " is not a perfect number" << endl;
}
system("pause>0");
}

下面是输出(加上"random")数字):

45 is not a perfect number
6 is a perfect number
789 is not a perfect number
28 is a perfect number
43 is not a perfect number
496 is a perfect number
// Where the random numbers start to appear
0 is a perfect number
0 is a perfect number
0 is a perfect number
0 is a perfect number
1216376645 is not a perfect number
32682 is not a perfect number
0 is a perfect number
0 is a perfect number
421388600 is not a perfect number
32767 is not a perfect number
0 is a perfect number
1 is not a perfect number
4196646 is not a perfect number
0 is a perfect number
0 is a perfect number
0 is a perfect number
1815038419 is not a perfect number
500691909 is not a perfect number

谢谢您的关注。我期待你的回复。

sizeof(numbers)返回数组numbers字节数。

你应该把它除以一个元素的大小,如sizeof(numbers) / sizeof(*numbers),得到元素的数量。

最新更新