代码受 cout 影响,不需要代码
Code it being affected by a cout which is not need it code
该程序仅具有检查数字是否为完美数字的功能。一个完美的是它所有因素的总和(不包括数字本身)等于它自己的数字。喜欢 6(1 + 2 + 3 = 6)
也喜欢 28
我看到了一个奇怪的行为。有cout << ""
。如果我们删除这一行代码将无法正常工作,如果我们把它一切正常。我无法理解这个
#include<iostream>
using namespace std;
int IsPerfect(int);
int main(){
int N, j;
cout << "Enter a value for N: ";
cin >> N;
cout << "Perfect numbers are ";
for(j=1; j<=N; j++){
cout << ""; //If you remove this line no output will be printed
if(IsPerfect(j) == 1){
cout << j << endl;
}
}
}
int IsPerfect(int a){
int sum=0;
for(int i; i<a; i++){
if(a%i == 0){
sum=sum+i;
}
}
if(sum == a){
return 1;
}
else{
return 0;
}
}
代码与cout
无关。查看 isPerfect
函数中的循环。变量 i
具有未定义的值,因为它未被初始化。像这样初始化它:
for(int i = 1; i<a; i++){
该程序仅具有检查数字是否为完美数字的功能。一个完美的是它所有因素的总和(不包括数字本身)等于它自己的数字。喜欢 6(1 + 2 + 3 = 6)
也喜欢 28
我看到了一个奇怪的行为。有cout << ""
。如果我们删除这一行代码将无法正常工作,如果我们把它一切正常。我无法理解这个
#include<iostream>
using namespace std;
int IsPerfect(int);
int main(){
int N, j;
cout << "Enter a value for N: ";
cin >> N;
cout << "Perfect numbers are ";
for(j=1; j<=N; j++){
cout << ""; //If you remove this line no output will be printed
if(IsPerfect(j) == 1){
cout << j << endl;
}
}
}
int IsPerfect(int a){
int sum=0;
for(int i; i<a; i++){
if(a%i == 0){
sum=sum+i;
}
}
if(sum == a){
return 1;
}
else{
return 0;
}
}
代码与cout
无关。查看 isPerfect
函数中的循环。变量 i
具有未定义的值,因为它未被初始化。像这样初始化它:
for(int i = 1; i<a; i++){