希望各位帮忙看看我的编程问题出在了哪里,是循环的哪一步出了问题吗?应该怎么样改
19行的循环条件判断错了,这样会让偶数少了一个因数(它/ 2 那个);
22行后面多了一个分号,导致outfile<<x<<endl的调用条件没匹配上。
给两个编程建议:
1遇到if/for/whie的需要{}写代码块的时候,就算代码块中只有一行代码,也不要省略花括号。
2.使用必要缩进来整体代码结构,避免非逻辑错误。
给你一个格式更好点的代码,如下:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream outfile;
outilfe.open("out.txt");
int x, sum;
for(x = 2; x < 1000; x++) {
sum = 0;
for(int i = 1; i <= x / 2; i++) {
if (x % i == 0) {
sum = sum + i;
}
}
if (sum == x) {
outfile << x << endl;
}
}
outfile.close();
return 0;
}
22行后面的分号删掉
for循环结束条件是i<=x/2,不是i<x/2